LinuxAdministrator - sudo #010 #LinuxAdministrator #bash #linux
Spisu treści:
- Jak korzystać z polecenia
tr
- Łączenie opcji
- Przykłady poleceń Tr
- Konwertuj małe litery na wielkie
- Usuń wszystkie znaki nienumeryczne
- Umieść każde słowo w nowym wierszu
- Usuń puste linie
- Wydrukuj katalogi
$PATH
w osobnym wierszu - Wniosek
tr
to narzędzie wiersza polecenia w systemach Linux i Unix, które tłumaczy, usuwa i wyciska znaki ze standardowego wejścia i zapisuje wynik na standardowym wyjściu.
Polecenie
tr
może wykonywać takie operacje, jak usuwanie powtarzających się znaków, konwersja wielkich liter na małe litery oraz podstawowa zamiana i usuwanie znaków. Zwykle jest on używany w połączeniu z innymi poleceniami za pośrednictwem potokowania.
W tym samouczku pokażemy, jak używać polecenia
tr
poprzez praktyczne przykłady i szczegółowe objaśnienia najczęściej używanych opcji.
Jak korzystać z polecenia
tr
Składnia polecenia
tr
jest następująca:
tr OPTION… SET1
tr
akceptuje dwa zestawy znaków, zwykle o tej samej długości, i zastępuje znaki pierwszego zestawu odpowiednimi znakami z drugiego zestawu.
SET
jest w zasadzie ciągiem znaków, w tym specjalnymi znakami odwrotnego ukośnika.
W poniższym przykładzie
tr
zastąpi wszystkie znaki ze standardowego wejścia (linuxize), odwzorowując znaki z pierwszego zestawu na pasujące znaki z drugiego zestawu.
echo 'linuxize' | tr 'lin' 'red'
Każde wystąpienie
l
jest zastępowane przez
r
,
i
przez
e
, zaś
n
przez
d
:
reduxeze
Zestawy znaków można również zdefiniować przy użyciu zakresów znaków. Na przykład zamiast pisać:
echo 'linuxize' | tr 'lmno' 'wxyz'
możesz użyć:
echo 'linuxize' | tr 'ln' 'w-z'
Gdy używana jest opcja
-c
(
--complement
),
tr
zastępuje wszystkie znaki, których nie ma w SET1.
W poniższym przykładzie wszystkie znaki oprócz „li” zostaną zastąpione ostatnim znakiem z drugiego zestawu:
echo 'linuxize' | tr -c 'li' 'xy'
liyyyiyyy
Jak można zauważyć, powyższe wyjście ma jeden bardziej widoczny znak niż wejście. Wynika to z faktu, że polecenie
echo
wypisuje niewidoczny znak nowej linii
który jest również zastępowany przez
y
. Aby powtórzyć ciąg bez nowej linii, użyj opcji
-n
.
Opcja
-d
(
--delete
) mówi
tr
aby usunąć znaki określone w SET1. Usuwając znaki bez ściskania, określ tylko jeden zestaw.
Poniższe polecenie usunie znaki
l
,
z
:
echo 'Linuxize' | tr -d 'liz'
Znak
L
nie jest usuwany, ponieważ wejście zawiera wielką literę
L
podczas gdy znak
l
w SET jest pisany małymi literami.
Lnuxe
Opcja
-s
(
--squeeze-repeats
) zastępuje sekwencję powtarzających się wystąpień zestawem znaków z ostatniego ZESTAWU.
W poniższym przykładzie
tr
usuwa powtarzające się spacje:
echo "GNU \ Linux" | tr -s ' '
GNU \ Linux
Gdy używany jest SET2, sekwencja znaku określonego w SET1 jest zastępowana przez SET2.
echo "GNU \ Linux" | tr -s ' ' '_'
GNU_\_Linux
Opcja
-t
(
--truncate-set1
) zmusza
tr
do
--truncate-set1
SET1 do długości SET2 przed dalszym przetwarzaniem.
Domyślnie, jeśli SET1 jest większy niż SET2,
tr
ponownie użyje ostatniego znaku SET2. Oto przykład:
echo 'Linux ize' | tr 'abcde' '12'
Dane wyjściowe pokazują, że znak
e
z zestawu SET1 jest dopasowany do najnowszego znaku zestawu SET2, którym jest
2
:
Linux iz2
Teraz użyj tego samego polecenia z opcją
-t
:
echo 'Linux ize' | tr -t 'abcde' '12'
Linux ize
Widać, że ostatnie trzy znaki z SET1 zostały usunięte. SET1 staje się „ab”, tej samej długości co SET2 i nie dokonuje się zamiany.
Łączenie opcji
Polecenie
tr
pozwala także łączyć jego opcje. Na przykład następujące polecenie najpierw zamienia wszystkie znaki oprócz
i
0
a następnie ściska powtarzające się
0
znaków:
echo 'Linux ize' | tr -cs 'i' '0'
Przykłady poleceń Tr
W tej sekcji omówimy kilka przykładów typowych zastosowań polecenia
tr
.
Konwertuj małe litery na wielkie
Konwersja małych liter na wielkie lub odwrotne jest jednym z typowych przypadków użycia polecenia
tr
.
dopasowuje wszystkie małe litery i
dopasowuje wszystkie wielkie litery.
echo 'Linuxize' | tr '' ''
LINUXIZE
Zamiast klas postaci możesz także użyć zakresów:
echo 'Linuxize' | tr 'az' 'A-Z'
Aby przekonwertować wielkie litery na małe, po prostu zmień miejsce zbiorów.
Usuń wszystkie znaki nienumeryczne
Następujące polecenie usuwa wszystkie znaki nienumeryczne:
echo "my phone is 123-456-7890" | tr -cd
oznacza wszystkie znaki cyfrowe, a użycie opcji
-c
powoduje usunięcie wszystkich znaków innych niż cyfry. Dane wyjściowe będą wyglądać następująco:
Umieść każde słowo w nowym wierszu
Aby umieścić każde słowo w nowym wierszu, musimy dopasować wszystkie znaki niealfanumeryczne i zastąpić je nowym wierszem:
echo 'GNU is an operating system' | tr -cs '' '\n'
Usuń puste linie
Aby usunąć puste linie, po prostu ściśnij powtarzające się znaki nowej linii:
tr -s '\n' < file.txt > new_file.txt
W powyższym poleceniu używamy symbolu przekierowania
<
aby przekazać zawartość
file.txt
do polecenia
tr
. Przekierowanie
>
zapisuje dane wyjściowe polecenia w
new_file.txt
.
Wydrukuj katalogi
$PATH
w osobnym wierszu
Zmienna środowiskowa
$PATH
to rozdzielona dwukropkami lista katalogów, która informuje powłokę, które katalogi mają wyszukać pliki wykonywalne po wpisaniu polecenia.
Aby wydrukować każdy katalog w osobnej linii, musimy dopasować dwukropek (:) i zastąpić go nową linią:
echo $PATH | tr ':' '\n'
/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin
Wniosek
tr
to polecenie służące do tłumaczenia lub usuwania znaków.
Chociaż bardzo przydatny,
tr
może działać tylko z pojedynczymi znakami. Do bardziej skomplikowanego dopasowywania wzorów i manipulowania łańcuchami należy użyć
sed
lub
awk
.
Polecenie echa w systemie Linux z przykładami
Polecenie echo jest jednym z najbardziej podstawowych i często używanych poleceń w systemie Linux. Argumenty przekazywane do echa są wypisywane na standardowe wyjście.
Polecenie Curl w systemie Linux z przykładami
Curl to narzędzie wiersza polecenia do przesyłania danych z lub na serwer zaprojektowane do pracy bez interakcji użytkownika. W tym samouczku pokażemy, jak korzystać z narzędzia do zwijania, poprzez praktyczne przykłady i szczegółowe objaśnienia najczęściej używanych opcji zwijania.
Polecenie daty w systemie Linux z przykładami
Polecenie daty wyświetla lub ustawia datę systemową. Najczęściej jest używany do drukowania daty i godziny w różnych formatach oraz obliczania przyszłych i przeszłych dat.