The mind behind Linux | Linus Torvalds
Obsah:
- Jak používat příkaz
tr
- Kombinace možností
- Příklady příkazů Tr
- Převést malá písmena na velká písmena
- Odstraňte všechny nečíselné znaky
- Vložte každé slovo do nového řádku
- Odstraňte prázdné řádky
- Tisk adresářů
$PATH
na samostatný řádek - Závěr
tr
je obslužný program příkazového řádku v systémech Linux a Unix, který překládá, odstraňuje a maže znaky ze standardního vstupu a zapisuje výsledek na standardní výstup.
Příkaz
tr
může provádět operace, jako je odstraňování opakovaných znaků, převádění velkých písmen na malá písmena a nahrazování a odstraňování základních znaků. Obvykle se používá v kombinaci s jinými příkazy pomocí potrubí.
V tomto tutoriálu vám ukážeme, jak používat příkaz
tr
prostřednictvím praktických příkladů a podrobných vysvětlení nejběžnějších možností.
Jak používat příkaz
tr
Syntaxe příkazu
tr
je následující:
tr OPTION… SET1
tr
přijímá dvě sady znaků, obvykle se stejnou délkou, a nahradí znaky první sady odpovídajícími znaky z druhé sady.
SET
je v podstatě řetězec znaků, včetně speciálních znaků se zpětným lomítkem.
V následujícím příkladu
tr
nahradí všechny znaky ze standardního vstupu (linuxize) mapováním znaků z první sady s odpovídajícími z druhé sady.
echo 'linuxize' | tr 'lin' 'red'
Každý výskyt
l
je nahrazen
r
,
i
za
e
n
:
d
:
reduxeze
Znakové sady lze také definovat pomocí znakových rozsahů. Například místo psaní:
echo 'linuxize' | tr 'lmno' 'wxyz'
Můžeš použít:
echo 'linuxize' | tr 'ln' 'w-z'
Při
--complement
volby
-c
(
--complement
)
tr
nahradí všechny znaky, které nejsou v SET1.
V příkladu níže budou všechny znaky kromě „li“ nahrazeny posledním znakem z druhé sady:
echo 'linuxize' | tr -c 'li' 'xy'
liyyyiyyy
Jak jste si možná všimli, výše uvedený výstup má ještě jeden viditelný znak než vstup. Je to proto, že příkaz
echo
vytiskne neviditelný znak nového řádku
který je také nahrazen
y
. Chcete-li opakovat řetězec bez nového řádku, použijte volbu
-n
.
Volba
-d
(
--delete
) řekne
tr
aby odstranil znaky uvedené v SET1. Při mazání znaků bez mačkání zadejte pouze jednu sadu.
Příkaz níže odstraní znaky
l
,
i
a
z
:
echo 'Linuxize' | tr -d 'liz'
Znak
L
není odstraněn, protože vstup zahrnuje velká písmena
L
zatímco znak
l
v SET je malými písmeny.
Lnuxe
Volba
-s
(
--squeeze-repeats
) nahradí sekvenci opakovaných výskytů znakovou sadou v posledním SET.
V následujícím příkladu
tr
odstraní opakované mezery:
echo "GNU \ Linux" | tr -s ' '
GNU \ Linux
Při použití SET2 se posloupnost znaků zadaných v SET1 nahradí SET2.
echo "GNU \ Linux" | tr -s ' ' '_'
GNU_\_Linux
Volba
-t
(-
--truncate-set1
) přinutí
tr
aby před dalším zpracováním
--truncate-set1
SET1 na délku SET2.
Ve výchozím nastavení, pokud je SET1 větší než SET2, bude
tr
znovu použit poslední znak SET2. Zde je příklad:
echo 'Linux ize' | tr 'abcde' '12'
Výstup ukazuje, že znak
e
z SET1 je spojen s nejnovějším znakem SET2, který je
2
:
Linux iz2
Nyní použijte stejný příkaz s volbou
-t
:
echo 'Linux ize' | tr -t 'abcde' '12'
Linux ize
Vidíte, že poslední tři znaky SET1 jsou odstraněny. SET1 se stává „ab“, stejnou délkou jako SET2 a neprovádí se žádná výměna.
Kombinace možností
Příkaz
tr
vám také umožňuje kombinovat jeho možnosti. Například následující příkaz nejprve nahradí všechny znaky kromě
i
číslem
0
a poté stiskne opakované
0
znaků:
echo 'Linux ize' | tr -cs 'i' '0'
Příklady příkazů Tr
V této části si ukážeme několik příkladů běžného použití příkazu
tr
.
Převést malá písmena na velká písmena
Převod malých a velkých písmen nebo převrácení je jedním z typických případů použití příkazu
tr
.
odpovídá všem malým písmenům a
odpovídá všem velkým písmenům.
echo 'Linuxize' | tr '' ''
LINUXIZE
Místo tříd znaků můžete použít také rozsahy:
echo 'Linuxize' | tr 'az' 'A-Z'
Chcete-li převést velká písmena na malá písmena, jednoduše přepněte místa sad.
Odstraňte všechny nečíselné znaky
Následující příkaz odstraní všechny nečíselné znaky:
echo "my phone is 123-456-7890" | tr -cd
je zkratka pro všechny číselné znaky a pomocí volby
-c
odstraní příkaz všechny číslice bez číslic. Výstup bude vypadat takto:
Vložte každé slovo do nového řádku
Abychom každé slovo vložili do nového řádku, musíme shodovat všechny nealfanumerické znaky a nahradit je novým řádkem:
echo 'GNU is an operating system' | tr -cs '' '\n'
Odstraňte prázdné řádky
Chcete-li vymazat prázdné řádky, jednoduše stiskněte opakující se znaky nového řádku:
tr -s '\n' < file.txt > new_file.txt
Ve výše uvedeném příkazu používáme symbol přesměrování
<
pro předání obsahu
file.txt
příkazu
tr
. Přesměrování
>
zapíše výstup příkazu do
new_file.txt
.
Tisk adresářů
$PATH
na samostatný řádek
Proměnná prostředí
$PATH
je seznam adresářů oddělených dvojtečkou, který říká shellu, které adresáře mají při psaní příkazu hledat spustitelné soubory.
Chcete-li vytisknout každý adresář na samostatném řádku, musíme porovnat dvojtečku (:) a nahradit ji novým řádkem:
echo $PATH | tr ':' '\n'
/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin
Závěr
tr
je příkaz pro překlad nebo mazání znaků.
Ačkoli je to velmi užitečné,
tr
může pracovat pouze s jednotlivými znaky. Pro složitější porovnávání vzorků a manipulaci s řetězci byste měli použít
sed
nebo
awk
.
Příkaz Echo v Linuxu s příklady
Příkaz echo je jedním z nejzákladnějších a nejčastěji používaných příkazů v systému Linux. Argumenty předané echo jsou vytištěny na standardní výstup.
Příkaz Curl v Linuxu s příklady
Curl je obslužný program příkazového řádku pro přenos dat z nebo na server navržený pro práci bez zásahu uživatele. V tomto tutoriálu vám ukážeme, jak používat nástroj zvlnění pomocí praktických příkladů a podrobných vysvětlení nejběžnějších možností zvlnění.
Wget příkaz v Linuxu s příklady
GNU Wget je nástroj příkazového řádku pro stahování souborů z webu. V tomto tutoriálu vám ukážeme, jak používat příkaz Wget pomocí praktických příkladů a podrobných vysvětlení nejběžnějších možností Wgetu.