12 Przydatne polecenia do filtrowania tekstu do efektywnych operacji plików w Linux
- 651
- 41
- Pani Janina Cieśla
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:
- Jak używać polecenia GNU „SED” do tworzenia, edytowania i manipulowania plikami w Linux
- 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:
- 14 Przydatne przykłady polecenia „Sort” Linux - Część 1
- 7 Przykłady polecenia „Sort” ciekawego Linux - Część 2
- Jak znaleźć i sortować pliki na podstawie daty i godziny modyfikacji
- 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:
--kolumna
określa liczbę kolumn utworzonych na wyjściu.-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.
- « Jak zmienić nazwę pliku podczas pobierania za pomocą WGET w Linux
- Zainstaluj Nginx z NGX_Pagespeed (optymalizacja prędkości) na Debian i Ubuntu »