12 Przydatne polecenia do filtrowania tekstu do efektywnych operacji plików w Linux

12 Przydatne polecenia do filtrowania tekstu do efektywnych operacji plików w Linux

W tym artykule przejrzymy wiele narzędzi wiersza poleceń, które działają jako filtry w Linux. A filtr to program, który odczytuje standardowe wejście, wykonuje na nim operację i zapisuje wyniki do standardowego wyjścia.

Z tego powodu można go wykorzystać do przetwarzania informacji w potężny sposób, takich jak restrukturyzacja wyjściowa w celu generowania użytecznych raportów, modyfikując tekst w plikach i wiele innych zadań administracji systemu.

To powiedziawszy, poniżej znajdują się niektóre z przydatnych plików lub filtrów tekstowych w Linux.

1. Polecenie AWK

Awk jest niezwykłym językiem skanowania i przetwarzania wzorców, można go użyć do budowy przydatnych filtrów w Linux. Możesz zacząć go używać, czytając naszą serię AWK, część 1 do części 13.

Dodatkowo przeczytaj również przez Awk Strona Man, aby uzyskać więcej informacji i opcje użytkowania:

$ MAN AWK 

2. Polecenie sed

sed jest potężnym edytorem strumienia do filtrowania i przekształcania tekstu. Napisaliśmy już dwa przydatne artykuły na SED, które możesz przejść tutaj:

  1. Jak używać polecenia GNU „SED” do tworzenia, edytowania i manipulowania plikami w Linux
  2. 15 Przydatne wskazówki i wskazówki dotyczące poleceń „SED” dla codziennych zadań administrowania systemem Linux

Strona SED Man dodała opcje sterowania i instrukcje:

$ man sed 

3. GREP, EGREP, FGREP, RGREP Polecenia

Te filtry linie wyjściowe pasujące do danego wzoru. Odczytują linie z pliku lub standardowego wejścia i domyślnie drukują wszystkie pasujące linie.

Notatka: Głównym programem jest GREP, warianty są po prostu takie same jak przy użyciu określonych opcji GREP jak poniżej (i są nadal używane do kompatybilności wstecznej):

$ egrep = grep -e $ fgrep = grep -f $ rgrep = grep -r 

Poniżej znajdują się podstawowe polecenia GREP:

[chroniony e -mail] ~ $ grep „aaronkilik” /etc /passwd Aaronkilik: x: 1001: 1001 ::/home/aaronkilik: [chroniony e -mail] ~ $ Cat /itp. /Passwd | Grep „Aronkilik” Aaronkilik: x: 1001: 1001 ::/home/aaronkilik: 

Możesz przeczytać więcej o różnicy między GREP, EGREP i FGREP w Linux?.

4. polecenie głowy

głowa służy do wyświetlania pierwszych części pliku, wyświetla pierwszy 10 linie domyślnie. Możesz użyć -N Flaga num, aby określić liczbę wyświetlanych linii:

[chroniony e -mail] ~ $ Head/var/log/auth.dziennik 2 stycznia 10:45:01 Tecmint Cron [3383]: Pam_Unix (Cron: Session): Sesja otwarta dla root użytkownika przez (uid = 0) 2 stycznia 10:45:01 Tecmint Cron [3383]: Pam_Unix (Cron: Sesja) : Sesja zamknięta dla root użytkownika 2 stycznia 10:51:34 TecMint sudo: TecMint: tty = nieznany; Pwd =/home/tecMint; Użytkownik = root; Command =/usr/lib/LinuxMint/Mintupdate/Checkapt.PY 2 stycznia 10:51:34 Tecminint Sudo: Pam_Unix (sudo: sesja): Sesja otwarta dla root użytkownika przez (uid = 0) 2 stycznia 10:51:39 TecMint sudo: pam_unix (sudo: sesja): sesja zamknięta dla użytkownika Root 2 stycznia 10:55:01 Tecmint Cron [4099]: Pam_Unix (Cron: Session): Sesja otwarta dla root użytkownika przez (uid = 0) 2 stycznia 10:55:01 TecMint Cron [4099]: Pam_Unix (Cron: sesja: sesja sesja ): Sesja zamknięta dla root użytkownika 2 stycznia 11:05:01 Tecmint Cron [4138]: Pam_Unix (Cron: Session): Sesja otwarta dla root użytkownika przez (uid = 0) 2 stycznia 11:05:01 TecMint Cron [4138] : pam_unix (cron: sesja): sesja zamknięta dla korzenia użytkownika 2 stycznia 11:09:01 TecMint Cron [4146]: pam_unix (cron: sesja): sesja otwarta dla korzenia użytkownika przez (uid = 0) [chroniony e -mail] ~ $ Head -n 5/var/log/auth.dziennik 2 stycznia 10:45:01 Tecmint Cron [3383]: Pam_Unix (Cron: Session): Sesja otwarta dla root użytkownika przez (uid = 0) 2 stycznia 10:45:01 Tecmint Cron [3383]: Pam_Unix (Cron: Sesja) : Sesja zamknięta dla root użytkownika 2 stycznia 10:51:34 TecMint sudo: TecMint: tty = nieznany; Pwd =/home/tecMint; Użytkownik = root; Command =/usr/lib/LinuxMint/Mintupdate/Checkapt.PY 2 stycznia 10:51:34 Tecminint Sudo: Pam_Unix (sudo: sesja): Sesja otwarta dla root użytkownika przez (uid = 0) 2 stycznia 10:51:39 TecMint sudo: pam_unix (sudo: sesja): sesja zamknięta dla użytkownika źródło 

Dowiedz się, jak używać polecenia głowy z poleceniami ogona i CAT do efektywnego użycia w Linux.

5. polecenie ogona

ogon Wyświetla ostatnie części (10 domyślnie linie) pliku. Użyj -N przełącznik NUM, aby określić liczbę wyświetlanych linii.

Polecenie poniżej wyświetli ostatnie 5 linie określonego pliku:

[chroniony e -mail] ~ $ ogon -n 5/var/log/auth.dziennik 6 stycznia 13:01:27 TecMint Sshd [1269]: Server słuchający na 0.0.0.0 Port 22. 6 stycznia 13:01:27 Tecmint Sshd [1269]: Server Słuchanie na :: Port 22. 6 stycznia 13:01:27 Tecmint Sshd [1269]: otrzymałem westchnienie; ponowne uruchomienie. 6 stycznia 13:01:27 TecMint Sshd [1269]: Server słuchający na 0.0.0.0 Port 22. 6 stycznia 13:01:27 Tecmint Sshd [1269]: Server Słuchanie na :: Port 22. 

Dodatkowo, ogon ma specjalną opcję -F do oglądania zmian w pliku w czasie rzeczywistym (zwłaszcza plików dziennika).

Poniższe polecenie włączy monitorowanie zmian w określonym pliku:

[chroniony e -mail] ~ $ ogon -f/var/log/auth.dziennik 6 stycznia 12:58:01 TecMint Sshd [1269]: Server Słuchanie na :: Port 22. 6 stycznia 12:58:11 TecMint Sshd [1269]: Otrzymałem westchnienie; ponowne uruchomienie. 6 stycznia 12:58:12 TecMint Sshd [1269]: Server słuchający na 0.0.0.0 Port 22. 6 stycznia 12:58:12 TecMint Sshd [1269]: Server Słuchanie na :: Port 22. 6 stycznia 13:01:27 Tecmint Sshd [1269]: otrzymałem westchnienie; ponowne uruchomienie. 6 stycznia 13:01:27 TecMint Sshd [1269]: Server słuchający na 0.0.0.0 Port 22. 6 stycznia 13:01:27 Tecmint Sshd [1269]: Server Słuchanie na :: Port 22. 6 stycznia 13:01:27 Tecmint Sshd [1269]: otrzymałem westchnienie; ponowne uruchomienie. 6 stycznia 13:01:27 TecMint Sshd [1269]: Server słuchający na 0.0.0.0 Port 22. 6 stycznia 13:01:27 Tecmint Sshd [1269]: Server Słuchanie na :: Port 22. 

Przeczytaj ogon Strona Man dla pełnej listy opcji użytkowania i instrukcji:

$ MAN TAIN 

6. sortowanie polecenia

sortować służy do sortowania wierszy pliku tekstowego lub ze standardowego wejścia.

Poniżej znajduje się zawartość pliku o nazwie domeny.lista:

[chroniony e -mail] ~ $ Domeny CAT.lista Tecmint.com tecMint.Com News.Tecmint.Com News.Tecmint.com Linuxsay.com Linuxsay.com WindowsMint.com WindowsMint.com 

Możesz uruchomić proste polecenie sort, aby sortować zawartość pliku, taka:

[chroniony e -mail] ~ $ sortować domeny.lista Linuxsay.com Linuxsay.Com News.Tecmint.Com News.Tecmint.com tecMint.com tecMint.com WindowsMint.com WindowsMint.com 

Możesz użyć sortować Poleć na wiele sposobów, przejrzyj niektóre z przydatnych artykułów na temat sort Command w następujący sposób:

  1. 14 Przydatne przykłady polecenia „Sort” Linux - Część 1
  2. 7 Przykłady polecenia „Sort” ciekawego Linux - Część 2
  3. Jak znaleźć i sortować pliki na podstawie daty i godziny modyfikacji
  4. Jak sortować wyjście polecenia „LS” według ostatniej zmodyfikowanej daty i godziny

7. polecenie uniq

Uniq Polecenie służy do zgłaszania lub pomiaru powtarzanych wierszy, filtruje linie ze standardowego wejścia i zapisuje wynik do standardowego wyjścia.

Po bieganiu sortować W strumieniu wejściowym możesz usunąć powtarzane linie za pomocą Uniq jak w poniższym przykładzie.

Aby wskazać liczbę wystąpień linii, użyj -C opcja i zignoruj ​​różnice w przypadku podczas porównania poprzez włączenie -I opcja:

[chroniony e -mail] ~ $ Domeny CAT.lista Tecmint.com tecMint.Com News.Tecmint.Com News.Tecmint.com Linuxsay.com Linuxsay.com WindowsMint.com [chroniony e -mail] ~ $ sortować domeny.Lista | uniq -c 2 Linuxsay.COM 2 Wiadomości.Tecmint.com 2 Tecmint.com 1 WindowsMint.com 

Przeczytaj Uniq Strona Man, aby uzyskać dalsze informacje o użyciu i flagi:

$ man uniq 

8. polecenie fmt

fmt Prosty optymalny format tekstu, sformatuje akapity w określonym pliku i drukuje wyniki do standardowego wyjścia.

Poniżej znajduje się treść wyodrębniona z pliku lista domeny.tekst:

1.Tecmint.com 2.Aktualności.Tecmint.com 3.Linuxsay.com 4.WindowsMint.com 

Aby sformatować powyższą zawartość do standardowej listy, uruchom następujące polecenie z -w Przełącznik służy do zdefiniowania maksymalnej szerokości linii:

[chroniony e -mail] ~ $ Lista domeny CAT.tekst 1.Tecmint.com 2.Aktualności.Tecmint.com 3.Linuxsay.com 4.WindowsMint.com [chroniony e -mail] ~ $ fmt -w 1 lista domeny.tekst 1.Tecmint.com 2.Aktualności.Tecmint.com 3.Linuxsay.com 4.WindowsMint.com 

9. polecenie pr

Pr Polecenie konwertuje pliki tekstowe lub standardowe wejście do drukowania. Na przykład dalej Debian Systemy, możesz wymienić wszystkie zainstalowane pakiety w następujący sposób:

$ dpkg -l 

Aby zorganizować listę na stronach i kolumnach gotowych do drukowania, wydaj następujące polecenie.

[chroniony e -mail] ~ $ DPKG -L | PR -kolumny 3 -l 20 2017-01-06 13:19 Page 1 pożądany = nieznany/instaluj II Adduser II APG | Status = not/inst/conf- ii adwaita-icon-theme II App-install-Data |/err?= (Brak)/ Reinst-R ii Adwaita-icon-Theme- II Apparmor ||/ Nazwa II ALSA-BASE II APT +++-======================================================================= II ALSA-UTILS II APT-CLONE II Rachunkowość II Anacron II Apt-Transport-Https II ACL II APACHE2 II APT-UTILS II ACPI-Support II Apache2-Bin II Apt-Xapian-Index II Acpid II Apache2-Data II AptDaemon II Add II APTDAEON II APTDAEON II -At-Key II Apache2-UTILS II Aptdaemon-Data 2017-01-06 13:19 Strona 2 II Aptitude II avahi-daemon II BIND9-HOST II APTIDE-COMMON II AVAHI-UTILS II BINFMT-SUPPORT II APTURL II Binutils II Binutils II Binutils II II appturl-common II Banshee II Bison II Archdetect-DEB II Baobab II BLT II ASPELL II-FILES II BADEERY II ASPELL-EN II BASE-PASSWD II Bluetooth II AT-SPI2-Core II Bash II Bluez II II Bash-Complecja II Bluez-Cups II avahi-Autoipd II BC II Bluez-Obexd… 

Używane tutaj flagi to:

  1. --kolumna określa liczbę kolumn utworzonych na wyjściu.
  2. -L Określa długość strony (domyślnie to 66 wierszy).

10. TR polecenie

To narzędzie tłumaczy lub usuwa znaki ze standardowego wejścia i zapisuje wyniki do standardowego wyjścia.

Składnia do używania tr następująco:

$ TR opcje set1 set2 

Spójrz na poniższe przykłady, w pierwszym poleceniu, set1 ([: Upper:]) reprezentuje przypadek znaków wejściowych (wszystkie górne przypadki).

Następnie set2 ([: dolne:]) reprezentuje przypadek, w którym będą wynikowe znaki. To samo w drugim przykładzie i sekwencji ucieczki \N oznacza wyjście wydruku na nowej linii:

[chroniony e -mail] ~ $ echo "www.Tecmint.Com "| Tr [: Upper:] [: Lower:] www.Tecmint.com [chroniony e -mail] ~ $ Echo „Wiadomości.Tecmint.com "| Tr [: dolny:] [: Upper:] AKTUALNOŚCI.Tecmint.Com 

11. więcej poleceń

więcej Polecenie jest użytecznym filtrem perusal utworzonym zasadniczo do przeglądania certyfikatów. Pokazuje zawartość plików na stronie takiej jak Format, w której użytkownicy mogą naciskać [Wchodzić] Aby wyświetlić więcej informacji.

Możesz go użyć do wyświetlania dużych plików, takich jak:

[chroniony e -mail] ~ $ Dmesg | więcej [0.000000] Inicjowanie CPUSET CGROUPSS [0.000000] Inicjowanie procesora CGroup Subsys [0.000000] Inicjowanie cgroup subsys CPUACCT [0.000000] Linux wersja 4.4.0-21-generalny ([chroniony e-mail]) (GCC wersja 5.3.1 20160413 (Ubuntu 5.3.1-14UBUNTU2)) #37-ubuntu SMP poniedziałek 18 kwietnia 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generalny 4.4.6) [0.000000] wiersz poleceń: boot_image =/boot/vmlinuz-4.4.0-21-generalny root = uuid = BB29DDA3-BDAA-4B39-86CF-4A6DC9634A1B RO Cicha Splash vt.przekazanie = 7 [0.000000] Procesy obsługiwane przez jądro: [0.000000] Intel orygineintel [0.000000] AMD Authenticamd [0.000000] Centaur Centaurhauls [0.000000] x86/fpu: xstate_offset [2]: 576, XState_Sizes [2]: 256 [0.000000] x86/FPU: Obsługa XSAVE Funkcja 0x01: „X87 Floating Point Registers” [0.000000] x86/FPU: Obsługa XSAVE Funkcja 0x02: „SSE Registers” [0.000000] x86/FPU: Obsługa XSAVE Funkcja 0x04: „Rejestry AVX” [0.000000] x86/FPU: Włączone funkcje xstate 0x7, rozmiar kontekstu wynosi 832 bajty, przy użyciu formatu „standardowego”. [0.000000] x86/FPU: Używanie przełączników kontekstowych „chętnych” FPU. [0.000000] E820: Mapa fizyczna pamięci pamięci RAM dostarczanej przez bio: [0.000000] BIOS-E820: [MEM 0x0000000000000000-0x000000000009d3ff] użyteczne [0.000000] BIOS-E820: [MEM 0x000000000009d400-0x000000000009ffff] zarezerwowany [0.000000] BIOS-E820: [MEM 0x00000000000E0000-0X00000000000FFFFF] zarezerwowany [0.000000] BIOS-E820: [MEM 0X000000000000100000-0X00000000A56AFFFF] Użyteczne [0.000000] BIOS-E820: [MEM 0x00000000A56B0000-0X00000000A5EAFFFF] [0.000000] BIOS-E820: [MEM 0X00000000A5EB0000-0X00000000AABEFFF] Użyteczne --Więcej-- 

12. mniej polecenia

mniej jest przeciwieństwem więcej Polecenie powyżej, ale oferuje dodatkowe funkcje i jest trochę szybciej z dużymi plikami.

Używaj go w taki sam sposób jak więcej:

[chroniony e -mail] ~ $ Dmesg | mniej [0.000000] Inicjowanie CPUSET CGROUPSS [0.000000] Inicjowanie procesora CGroup Subsys [0.000000] Inicjowanie cgroup subsys CPUACCT [0.000000] Linux wersja 4.4.0-21-generalny ([chroniony e-mail]) (GCC wersja 5.3.1 20160413 (Ubuntu 5.3.1-14UBUNTU2)) #37-ubuntu SMP poniedziałek 18 kwietnia 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generalny 4.4.6) [0.000000] wiersz poleceń: boot_image =/boot/vmlinuz-4.4.0-21-generalny root = uuid = BB29DDA3-BDAA-4B39-86CF-4A6DC9634A1B RO Cicha Splash vt.przekazanie = 7 [0.000000] Procesy obsługiwane przez jądro: [0.000000] Intel orygineintel [0.000000] AMD Authenticamd [0.000000] Centaur Centaurhauls [0.000000] x86/fpu: xstate_offset [2]: 576, XState_Sizes [2]: 256 [0.000000] x86/FPU: Obsługa XSAVE Funkcja 0x01: „X87 Floating Point Registers” [0.000000] x86/FPU: Obsługa XSAVE Funkcja 0x02: „SSE Registers” [0.000000] x86/FPU: Obsługa XSAVE Funkcja 0x04: „Rejestry AVX” [0.000000] x86/FPU: Włączone funkcje xstate 0x7, rozmiar kontekstu wynosi 832 bajty, przy użyciu formatu „standardowego”. [0.000000] x86/FPU: Używanie przełączników kontekstowych „chętnych” FPU. [0.000000] E820: Mapa fizyczna pamięci pamięci RAM dostarczanej przez bio: [0.000000] BIOS-E820: [MEM 0x0000000000000000-0x000000000009d3ff] użyteczne [0.000000] BIOS-E820: [MEM 0x000000000009d400-0x000000000009ffff] zarezerwowany [0.000000] BIOS-E820: [MEM 0x00000000000E0000-0X00000000000FFFFF] zarezerwowany [0.000000] BIOS-E820: [MEM 0X000000000000100000-0X00000000A56AFFFF] Użyteczne [0.000000] BIOS-E820: [MEM 0x00000000A56B0000-0X00000000A5EAFFFF] [0.000000] BIOS-E820: [MEM 0X00000000A5EB0000-0X00000000AABEFFF] Użyteczne: 

Dowiedz się, dlaczego „mniej” jest szybsze niż „więcej” polecenia dla skutecznej nawigacji plików w Linux.

To wszystko na razie, daj nam znać o wszelkich przydatnych narzędzi wiersza poleceń, które nie wspomniano tutaj, które działają jako filtry tekstowe w Linux za pośrednictwem sekcji komentarza poniżej.