Programiści Linuksa kierują się filozofią tworzenia małych programów, które wykonują jedno zadanie i robią to dobrze. Weźmy na przykład narzędzia do przetwarzania tekstu w systemie Linux, są one lekkie i mają modułową funkcjonalność. Mimo że te narzędzia do manipulacji tekstem różnią się złożonością i funkcjonalnością, przydają się w środowisku, w którym graficzny interfejs użytkownika nie jest dostępny.
W artykule omówiono najlepsze narzędzia Linuksa do odczytywania plików i używania wyrażeń regularnych do wykonywania operacji na zaznaczonym tekście. Obejmuje również ich najbardziej podstawową funkcjonalność i przykłady dla lepszego zrozumienia.
1. grep
grep to linuksowe narzędzie do manipulacji tekstem, które wyszukuje ciąg znaków lub wzorców znanych jako wyrażenia regularne w pliku lub tekście. Narzędzie grep należy do rodziny narzędzi, które obejmują egrep, fgrep i grep, wśród których fgrep jest najszybszy, a grep jest najłatwiejszy.
Ogólna składnia używania grep jest następująca:
grep -opcje ciąg nazwa pliku
Na przykład, aby wyszukać słowo „root” w plik /etc/passwd:
grep root /etc/passwd
Oto kilka standardowych przykładów wiersza poleceń, od których można zacząć:
Opcje | Przykład | Opis |
---|---|---|
-C | grep -c |
Policz liczbę wierszy, w których istnieje ciąg |
-i | grep-i |
Przeprowadź wyszukiwanie bez rozróżniania wielkości liter dla określonego ciągu |
-o | grep-o |
Wyświetla tylko pasujący ciąg |
-I | grep -l "hasło" | Wyświetla nazwy plików w bieżącym katalogu, które pasują do wzorca |
-n | grep-n |
Wyświetla numer wiersza wzdłuż wiersza zawierającego określony ciąg |
ciąg1|ciąg2 | plik grep "ciąg1|ciąg2" | Znajdź i drukuj wiele ciągów z pliku |
Podobnie możesz użyć ^ metaznak za pomocą polecenia grep, aby wyświetlić wszystkie pasujące ciągi, które zaczynają się od określonych znaków.
Na przykład następujące polecenie potokowo przesyła dane wyjściowe polecenia env jako dane wejściowe do programu grep i wyświetla zmienne zaczynające się od „HO":
env | grep ^HO
Związane z: Praktyczne przykłady poleceń Linuksa Grep
2. awk
awk to potężny język skryptowy i narzędzie do manipulacji tekstem w wierszu poleceń, które może wykonywać skanowanie wiersz po wierszu i porównywać wiersze z wzorcami. Podstawowa składnia polecenia awk to akcja zdefiniowana między pojedynczym cudzysłowem a nawiasami klamrowymi, po których następuje nazwa pliku.
awk '{akcja}' nazwa pliku
awk '{wzór; akcja}' nazwa pliku
Narzędzie przeszukuje plik za pomocą wyrażeń regularnych i wykonuje funkcję określoną w parametrze action. awk wykonuje skrypt w każdym wierszu, jeśli nie ustawisz wzorca, jak pokazano poniżej:
awk '{print $1}' awk_examples.txt
...gdzie $1 wyświetla pierwsze pole awk_examples.txt plik.
Poniższe polecenie wykonuje funkcję drukowania na podanym wzorze zastępując drugie pole "Świat" z "Alicja," i wyświetla całą linię (0$):
echo "Witaj świecie" | awk '{$2="Alicja"; drukuj $0}'
Wyjście:
Witaj Alicjo
Podobnie możesz użyć funkcji wydrukuj 0 z powyższego polecenia, aby emulować grep funkcjonalność.
awk '/john/{print $0}' /etc/passwd
jan: x: 1001:1001::/dom/jan:/kosz/sz
3. sortować
sort to kolejne narzędzie wiersza poleceń Linuksa, które pomaga wyświetlić zawartość określonego pliku tekstowego w posortowanym formacie. Na przykład możesz potoku wyjście polecenia awk jako dane wejściowe do narzędzia sort w następujący sposób:
awk '{print $1}' awk_examples.txt | sortuj > sort_text.txt
kot sort_text.txt
Wyjście:
Związane z: Jak sortować pliki tekstowe w systemie Linux za pomocą sortowania
4. sed
sed lub edytor strumienia przyjmuje dane wejściowe jako strumień znaków i wykonuje filtrowanie oraz przekształcenia tekstu (usuwanie, zastępowanie i zastępowanie) określonego tekstu.
Możesz go używać w skrypcie i edytować pliki w sposób nieinteraktywny. Dlatego najbardziej podstawowym celem narzędzia jest podstawianie łańcucha/znaków. Ogólna składnia to:
sed 's/string/substitution/option' plik
Utwórz plik, używając losowych zdań, aby przećwiczyć i zrozumieć działanie tego narzędzia.
Zamieńmy wystąpienie słowa „dwa" w każdym wierszu pliku z "2" używając -g flaga globalnej wymiany w następujący sposób:
sed 's/dwa/2/g' sed_examples.txt > sed_examples2.txt
Podobnie, użyj -D flaga, aby usunąć określoną linię z pliku:
sed '2d' sed_examples.txt
Możesz również zastąpić ciąg, podając numer wiersza (4 s/dwa/2/p) i drukując tylko zastąpiony wiersz w następujący sposób:
sed -n '4 s/dwa/2/p' sed_examples2.txt
ten -n flaga w powyższym poleceniu wyłącza automatyczne drukowanie strumienia wejściowego na wyjście. Możesz użyć tej opcji na swoją korzyść, aby zastąpić funkcjonalność narzędzia grep sed.
Na przykład możesz zmodyfikować powyższe polecenie, dołączając tylko wzorzec regex /two/p tak, że -P flag wypisze wiersze tylko do standardowego strumienia wyjściowego.
sed -n '/dwa/p' sed_examples2.txt
Związane z: Te 10 przykładów sed sprawi, że będziesz zaawansowanym użytkownikiem Linuksa
5. skaleczenie
Cut to kolejne narzędzie wiersza poleceń, które wycina/wyodrębnia części tekstu z wiersza lub pliku. Wycina tekst na podstawie określonego pola, znaku lub pozycji w bajcie i przesyła wynik do standardowego wyjścia.
Narzędzie przyjmuje następującą składnię:
skaleczenie plik
Użyj -b możliwość wycięcia sekcji lub treści przy użyciu określonego bajtu lub zakresu bajtów:
cut -b 1 cut_examples.txt
Użyj -C flaga do wyodrębnienia tekstu poprzez określenie pozycji znaków:
cut -c 1,3,5 cut_examples.txt
Na koniec możesz również wyodrębnić tekst, określając pola za pomocą -F opcja i -D dla separatora spacji lub pola:
cut -d " " -f 1 cut_examples.txt
Oto lista zakresów z przykładami i opisami, które możesz wykorzystać z postacią -C i bajt -b opcje:
Zakres | Przykład | Opis |
---|---|---|
n- | cut -c 7- nazwa pliku | Wyodrębnij znak od n-tej liczby całkowitej do końca wiersza |
n-m | cut -b 7-15 nazwa pliku | Wyciągi z liczby całkowitej n-m każdego wiersza z pliku wejściowego |
-m | cut -c -7 nazwa pliku | Wyodrębnia linie zaczynające się od m do końca linii |
Pamiętaj, że nie możesz zdefiniować zakresów wyodrębniania tekstu za pomocą pola -F opcja.
Manipulowanie tekstem za pomocą poleceń systemu Linux
Linux oferuje wiele programów i narzędzi do obsługi i pracy z plikami lub tekstem. Nauka ich wszystkich może nie być wymagana, ponieważ możesz łatwo wypełnić lukę innym, gdy już dobrze się nad nimi zapanujesz, na przykład używając sed jako grep lub awk jako grep, ale nie może to być prawdą dla każdego narzędzia.
Poza tym polecenia Linuksa mają stromą krzywą uczenia się, ale gdy rozwiniesz tę umiejętność, mogą okazać się bardzo przydatne i skuteczne w życiu każdego użytkownika Linuksa, zwłaszcza administratora systemu.
Masz dość starej i nudnej aplikacji terminalowej, która jest preinstalowana w systemie Linux? Sprawdź te osiem aplikacji terminalowych, które usprawnią Twój przepływ pracy.
Czytaj dalej
- Linux
- Polecenia Linuksa
Rumaisa jest niezależnym pisarzem w MUO. Nosiła wiele kapeluszy, od matematyka po entuzjastę bezpieczeństwa informacji, a teraz pracuje jako analityk SOC. Jej zainteresowania obejmują czytanie i pisanie o nowych technologiach, dystrybucjach Linuksa i wszystkim, co dotyczy bezpieczeństwa informacji.
Zapisz się do naszego newslettera
Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Kliknij tutaj, aby zasubskrybować