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
instagram viewer

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 ./bashrc Policz liczbę wierszy, w których istnieje ciąg
-i grep-i ./bashrc Przeprowadź wyszukiwanie bez rozróżniania wielkości liter dla określonego ciągu
-o grep-o plik 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 plik 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.

8 najlepszych aplikacji terminalowych zwiększających produktywność w systemie Linux

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

UdziałĆwierkaćE-mail
Powiązane tematy
  • Linux
  • Polecenia Linuksa
O autorze
Rumaisa Niazi (7 opublikowanych artykułów)

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.

Więcej od Rumaisy Niazi

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ć