tr w systemie Unix/Linux z przykładami
The tr Command to narzędzie wiersza poleceń systemu UNIX służące do tłumaczenia lub usuwania znaków. Obsługuje szereg transformacji, w tym wielkie i małe litery, wyciskanie powtarzających się znaków, usuwanie określonych znaków oraz podstawowe wyszukiwanie i zamienianie. Można go używać z potokami UNIX w celu obsługi bardziej złożonych tłumaczeń. tr oznacza tłumaczenie.
Składnia:
$ tr [OPTION] SET1 [SET2]
Opcje -c: uzupełnia zestaw znaków w ciągu, tj. operacje dotyczą znaków spoza podanego zestawu -d: usuwa z wyniku znaki z pierwszego zestawu. -s: zastępuje powtarzające się znaki ze zbioru 1 pojedynczym wystąpieniem -t: obcina zbiór 1.
Przykładowe polecenia
1. Jak zamienić małe litery na wielkie. Aby przekonwertować znaki z małych na wielkie, możesz określić zakres znaków lub skorzystać z predefiniowanych klas znaków.
$ cat greekfile
Wyjście:
WELCOME TO techcodeview.com
$ cat greekfile | tr [a-z] [A-Z]
Wyjście:
WELCOME TO GEEKSFORGEEKS
Lub
$ cat greekfile | tr [:lower:] [:upper:]
Wyjście:
WELCOME TO GEEKSFORGEEKS
Alternatywnie możesz podać dane wejściowe dla pliku tr polecenie wykorzystujące przekierowanie:
tr [:lower:] [:upper:]
Wyjście:
WELCOME TO GEEKSFORGEEKS
2. Jak przetłumaczyć białe znaki na tabulatory. Poniższe polecenie tłumaczy wszystkie białe znaki na tabulatory
$ echo 'Welcome To techcodeview.com' | tr [:space:] ' '
Wyjście:
Welcome To techcodeview.com
W poprzednim przykładzie możemy również użyć przekierowania, aby zapewnić dane wejściowe tr . Chociaż tym razem użyjemy do tego ciągu znaków:
tr [:space:] ' ' < < < 'Welcome To techcodeview.com'
Wyjście:
Welcome To techcodeview.com
3. Jak przetłumaczyć nawiasy klamrowe na nawiasy. Możesz także tłumaczyć z i do pliku. W tym przykładzie przetłumaczymy nawiasy klamrowe w pliku z nawiasami.
$ cat greekfile
Wyjście:
{WELCOME TO} techcodeview.com $ tr '{}' '()' newfile.txt Wyjście:
(WELCOME TO) techcodeview.com
Powyższe polecenie odczyta każdy znak z geekfile.txt, przetłumaczy, jeśli jest to nawias klamrowy, i zapisze dane wyjściowe do newfile.txt.
4. Jak wycisnąć sekwencję powtarzających się znaków za pomocą opcji -s. Aby wycisnąć powtarzające się wystąpienia znaków określonych w zestawie, użyj opcji -s. Spowoduje to usunięcie powtarzających się wystąpień znaków z ostatniego określonego SET-u. LUB możemy to powiedzieć, możesz przekonwertować wiele ciągłych spacji na jedną spację
$ echo 'Welcome To techcodeview.com' | tr -s ' '
Wyjście:
Welcome To techcodeview.com
I ponownie wykonaj to samo zadanie, ale używając tutaj ciągu znaków:
tr -s ' ' < < < 'Welcome To techcodeview.com'
Wyjście:
Welcome To techcodeview.com
5. Jak usunąć określone znaki za pomocą opcji -d. Aby usunąć określone znaki, użyj opcji -d. Ta opcja usuwa znaki z pierwszego określonego zestawu.
$ echo 'Welcome To techcodeview.com' | tr -d W
Wyjście:
elcome To techcodeview.com
Lub równoważnie użyj:
tr -d W < < < 'Welcome to techcodeview.com'
Wyjście:
elcome To techcodeview.com
6. Aby usunąć wszystkie cyfry z ciągu, możesz użyć
$ echo 'my ID is 73535' | tr -d [:digit:]
Lub
$ tr -d [:digit:] < < < 'my ID is 73535'
Wyjście:
my ID is
7. Jak uzupełnić zbiory za pomocą opcji -c Możesz uzupełnić SET1 za pomocą opcji -c. Na przykład, aby usunąć wszystkie znaki z wyjątkiem cyfr, możesz użyć następujących poleceń.
$ echo 'my ID is 73535' | tr -cd [:digit:]
Lub
$ tr -cd [:digit:] < < < 'my ID is 73535'
Wyjście:
73535