Jak odstranit posledních n znaků z řetězce v Bash
V Bash lze oříznutí koncových bílých znaků z uživatelských vstupů nebo odstranění posledních n znaků z řetězce použít k vyčištění názvů souborů s nežádoucími příponami:
Metoda 1: Použití příkazu cut
Příkaz vyjmout v Bash se používá k extrahování částí z každého řádku souboru. Lze jej také použít k extrahování určitého rozsahu znaků z řetězce. K odstranění posledních n znaků z řetězce můžeme použít příkaz cut s volbou -c a zde je syntaxe:
echo 'tětiva' | střih -C -n
Zde je řetězec skutečný řetězec, ze kterého chceme odstranit posledních n znaků, a n je počet znaků, které chceme odstranit, níže je příklad, který používá výše uvedenou syntaxi:
#!/bin/bash
tětiva = 'Ahoj Linux'
echo ' $string ' | střih -C -5
Ve výše uvedeném příkladu jsme použili příkaz cut k odstranění posledních 6 znaků z řetězce „Ahoj Linux“ a výstup je „Ahoj“.
Metoda 2: Použití příkazu sed
Sed je výkonný editor proudů, který lze použít k provádění různých textových transformací v souboru nebo proudu vstupu. Chcete-li odstranit posledních n znaků z řetězce pomocí sed, můžeme použít následující syntaxi příkazu:
echo 'tětiva' | ale 's/.\{n\}$//'Zde n je počet znaků, které chceme odstranit z konce řetězce, a níže je příklad, který používá příkaz sed:
#!/bin/bash
tětiva = 'Ahoj Linux'
echo ' $string ' | ale 's/.\{6\}$//'
Ve výše uvedeném příkladu jsme použili příkaz sed k odstranění posledních 6 znaků z řetězce „Ahoj Linux“ a výstup je „Ahoj“.
Metoda 3: Použití rozšíření parametrů
Rozšíření parametrů je funkce v Bash, která nám umožňuje manipulovat s hodnotou proměnné. Chcete-li odstranit posledních n znaků z řetězce pomocí rozšíření parametrů, můžeme použít následující syntaxi:
${string::-n}Zde proměnná string obsahuje skutečný řetězec, ze kterého chceme odstranit posledních n znaků, a n je počet znaků, které chceme odstranit.
#!/bin/bashtětiva = 'Ahoj Linux'
echo ${string::-6}
Ve výše uvedeném příkladu jsme použili rozšíření parametrů k odstranění posledních 4 znaků z řetězce „Ahoj Linux“ a výstup je „Ahoj“.
Závěr
Chcete-li odstranit posledních n znaků z řetězce v bash, příkaz cut, příkaz sed a rozšíření parametrů jsou tři způsoby. Tyto metody se snadno používají a mohou být užitečné při různých skriptovacích úlohách Bash. Pomocí těchto metod můžeme snadno manipulovat s řetězci a provádět transformace textu v Bash.