12 Perintah Berguna untuk Penapisan Teks untuk Operasi Fail Berkesan di Linux

12 Perintah Berguna untuk Penapisan Teks untuk Operasi Fail Berkesan di Linux

Dalam artikel ini, kami akan mengkaji beberapa alat baris arahan yang bertindak sebagai penapis di Linux. A penapis adalah program yang membaca input standard, melakukan operasi di atasnya dan menulis hasilnya kepada output standard.

Atas sebab ini, ia boleh digunakan untuk memproses maklumat dengan cara yang berkuasa seperti penstrukturan semula output untuk menghasilkan laporan berguna, mengubahsuai teks dalam fail dan banyak tugas pentadbiran sistem lain.

Dengan kata itu, di bawah adalah beberapa fail yang berguna atau penapis teks di Linux.

1. Perintah awk

Awk adalah bahasa pengimbasan dan pemprosesan corak yang luar biasa, ia boleh digunakan untuk membina penapis berguna di linux. Anda boleh mula menggunakannya dengan membaca melalui AWK Series Bahagian 1 hingga Bahagian 13.

Di samping itu, juga membaca melalui awk Halaman Man untuk maklumat lanjut dan pilihan penggunaan:

$ man awk 

2. Perintah sed

sed adalah editor aliran yang kuat untuk penapisan dan mengubah teks. Kami telah menulis dua artikel berguna mengenai SED, bahawa anda boleh meneruskannya di sini:

  1. Cara Menggunakan Perintah GNU 'Sed' untuk membuat, mengedit, dan memanipulasi fail di Linux
  2. 15 Petua dan Trik Perintah 'Sed' berguna untuk tugas pentadbiran sistem Linux setiap hari

Halaman Sed Man telah menambah pilihan dan arahan kawalan:

$ man sed 

3. Grep, egrep, fgrep, perintah rgrep

Garis output penapis ini memadankan corak yang diberikan. Mereka membaca baris dari fail atau input standard, dan mencetak semua baris sepadan dengan lalai ke output standard.

Catatan: Program utama adalah grep, variasi hanya sama dengan menggunakan pilihan GREP tertentu seperti di bawah (dan mereka masih digunakan untuk keserasian mundur):

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

Berikut adalah beberapa arahan asas grep:

[dilindungi e -mel] ~ $ Grep "Aaronkilik" /etc /passwd Aaronkilik: X: 1001: 1001 ::/Home/Aaronkilik: [dilindungi e -mel] ~ $ kucing /etc /passwd | Grep "Aronkilik" Aaronkilik: X: 1001: 1001 ::/Home/Aaronkilik: 

Anda boleh membaca lebih lanjut mengenai perbezaan antara Grep, Egrep dan Fgrep di Linux?.

4. Perintah kepala

kepala digunakan untuk memaparkan bahagian pertama fail, ia mengeluarkan yang pertama 10 garis secara lalai. Anda boleh menggunakan -n Num bendera untuk menentukan bilangan baris yang hendak dipaparkan:

[dilindungi e -mel] ~ $ kepala/var/log/auth.log Jan 2 10:45:01 Tecmint Cron [3383]: Pam_unix (Cron: Sesi): Sesi Dibuka untuk Root Pengguna oleh (UID = 0) 2 Jan 10:45:01 Tecmint Cron [3383]: Pam_unix (Cron: sesi) : Sesi ditutup untuk akar pengguna 2 Jan 10:51:34 Tecmint Sudo: Tecmint: Tty = Unknown; Pwd =/home/tecmint; Pengguna = root; Command =/usr/lib/linuxmint/mintupdate/checkapt.PY Jan 2 10:51:34 Tecmint Sudo: Pam_unix (sudo: sesi): Sesi dibuka untuk akar pengguna oleh (uid = 0) 2 Jan 10:51:39 Tecmint sudo: Pam_unix (sudo: sesi): Sesi ditutup untuk pengguna Root Jan 2 10:55:01 Tecmint Cron [4099]: Pam_unix (Cron: Sesi): Sesi Dibuka untuk Root Pengguna oleh (UID = 0) 2 Jan 10:55:01 ): Sesi ditutup untuk akar pengguna 2 Jan 11:05:01 Tecmint Cron [4138]: Pam_unix (Cron: Sesi): Sesi dibuka untuk Root Pengguna oleh (UID = 0) 2 Jan 11:05:01 Tecmint Cron [4138] : Pam_unix (Cron: Sesi): Sesi ditutup untuk akar pengguna 2 Jan 11:09:01 Tecmint Cron [4146]: Pam_unix (Cron: sesi): Sesi dibuka untuk akar pengguna oleh (uid = 0) [dilindungi e -mel] ~ $ kepala -n 5/var/log/auth.log Jan 2 10:45:01 Tecmint Cron [3383]: Pam_unix (Cron: Sesi): Sesi Dibuka untuk Root Pengguna oleh (UID = 0) 2 Jan 10:45:01 Tecmint Cron [3383]: Pam_unix (Cron: sesi) : Sesi ditutup untuk akar pengguna 2 Jan 10:51:34 Tecmint Sudo: Tecmint: Tty = Unknown; Pwd =/home/tecmint; Pengguna = root; Command =/usr/lib/linuxmint/mintupdate/checkapt.PY Jan 2 10:51:34 Tecmint Sudo: Pam_unix (sudo: sesi): Sesi dibuka untuk akar pengguna oleh (uid = 0) 2 Jan 10:51:39 Tecmint sudo: Pam_unix (sudo: sesi): Sesi ditutup untuk pengguna akar 

Ketahui Cara Menggunakan Perintah Kepala Dengan Perintah Ekor dan Kucing Untuk Penggunaan Berkesan di Linux.

5. perintah ekor

ekor mengeluarkan bahagian terakhir (10 garis secara lalai) dari fail. Menggunakan -n suis num untuk menentukan bilangan baris yang hendak dipaparkan.

Perintah di bawah akan mengeluarkan yang terakhir 5 baris fail yang ditentukan:

[dilindungi e -mel] ~ $ ekor -n 5/var/log/auth.log 6 Jan 13:01:27 Tecmint SSHD [1269]: Mendengarkan pelayan pada 0.0.0.0 port 22. 6 Jan 13:01:27 Tecmint sshd [1269]: Mendengarkan pelayan pada :: port 22. 6 Jan 13:01:27 Tecmint SSHD [1269]: Menerima Sighup; memulakan semula. 6 Jan 13:01:27 Tecmint SSHD [1269]: Mendengarkan pelayan pada 0.0.0.0 port 22. 6 Jan 13:01:27 Tecmint sshd [1269]: Mendengarkan pelayan pada :: port 22. 

Di samping itu, ekor mempunyai pilihan khas -f untuk menonton perubahan dalam fail dalam masa nyata (terutamanya fail log).

Perintah berikut akan membolehkan anda memantau perubahan dalam fail yang ditentukan:

[dilindungi e -mel] ~ $ ekor -f/var/log/auth.log 6 Jan 12:58:01 Tecmint SSHD [1269]: Mendengarkan pelayan pada :: port 22. 6 Jan 12:58:11 Tecmint SSHD [1269]: Menerima Sighup; memulakan semula. 6 Jan 12:58:12 Tecmint sshd [1269]: Mendengarkan pelayan pada 0.0.0.0 port 22. 6 Jan 12:58:12 Tecmint sshd [1269]: pelayan mendengar pada :: port 22. 6 Jan 13:01:27 Tecmint SSHD [1269]: Menerima Sighup; memulakan semula. 6 Jan 13:01:27 Tecmint SSHD [1269]: Mendengarkan pelayan pada 0.0.0.0 port 22. 6 Jan 13:01:27 Tecmint sshd [1269]: Mendengarkan pelayan pada :: port 22. 6 Jan 13:01:27 Tecmint SSHD [1269]: Menerima Sighup; memulakan semula. 6 Jan 13:01:27 Tecmint SSHD [1269]: Mendengarkan pelayan pada 0.0.0.0 port 22. 6 Jan 13:01:27 Tecmint sshd [1269]: Mendengarkan pelayan pada :: port 22. 

Baca melalui ekor Halaman lelaki untuk senarai lengkap pilihan dan arahan penggunaan:

$ lelaki ekor 

6. Susun arahan

menyusun digunakan untuk menyusun garis fail teks atau dari input standard.

Berikut adalah kandungan fail yang dinamakan Domain.senarai:

[dilindungi e -mel] ~ $ domain kucing.senarai Tecmint.com tecmint.berita com.Tecmint.berita com.Tecmint.com linuxsay.com linuxsay.com windowsmint.com windowsmint.com 

Anda boleh menjalankan arahan semacam mudah untuk menyusun kandungan fail seperti:

[dilindungi e -mel] ~ $ Sort domain.senarai Linuxsay.com linuxsay.berita com.Tecmint.berita com.Tecmint.com tecmint.com tecmint.com windowsmint.com windowsmint.com 

Anda boleh menggunakan menyusun Perintah dalam banyak cara, pergi melalui beberapa artikel berguna mengenai perintah jenis seperti berikut:

  1. 14 Contoh berguna perintah linux 'sort' - Bahagian 1
  2. 7 Contoh Perintah Linux 'Sort' yang menarik - Bahagian 2
  3. Cara mencari dan menyusun fail berdasarkan tarikh dan masa pengubahsuaian
  4. Cara menyusun output arahan 'ls' dengan tarikh dan masa yang diubah suai terakhir

7. perintah uniq

uniq Perintah digunakan untuk melaporkan atau menghilangkan baris berulang, ia menapis baris dari input standard dan menulis hasilnya kepada output standard.

Selepas berlari menyusun Pada aliran input, anda boleh mengeluarkan garis berulang dengan uniq seperti contoh di bawah.

Untuk menunjukkan bilangan kejadian garis, gunakan -c pilihan dan mengabaikan perbezaan dalam kes semasa membandingkan dengan memasukkan -i pilihan:

[dilindungi e -mel] ~ $ domain kucing.senarai Tecmint.com tecmint.berita com.Tecmint.berita com.Tecmint.com linuxsay.com linuxsay.com windowsmint.com [dilindungi e -mel] ~ $ Sort domain.Senarai | uniq -c 2 linuxsay.com 2 berita.Tecmint.com 2 Tecmint.com 1 Windowsmint.com 

Baca melalui uniq Halaman lelaki untuk maklumat penggunaan dan bendera selanjutnya:

$ man uniq 

8. Perintah FMT

FMT Formatter teks optimum yang mudah, ia memformat perenggan dalam fail yang ditentukan dan mencetak hasil kepada output standard.

Berikut adalah kandungan yang diekstrak dari fail senarai domain.txt:

1.Tecmint.com 2.berita.Tecmint.com 3.Linuxsay.com 4.Windowsmint.com 

Untuk memformat kandungan di atas ke senarai standard, jalankan arahan berikut dengan -w Suis digunakan untuk menentukan lebar garis maksimum:

[dilindungi e -mel] ~ $ senarai domain kucing.txt 1.Tecmint.com 2.berita.Tecmint.com 3.Linuxsay.com 4.Windowsmint.com [dilindungi e -mel] ~ $ FMT -W 1 senarai domain.txt 1.Tecmint.com 2.berita.Tecmint.com 3.Linuxsay.com 4.Windowsmint.com 

9. Perintah PR

pr Perintah menukar fail teks atau input standard untuk mencetak. Contohnya Debian Sistem, anda boleh menyenaraikan semua pakej yang dipasang seperti berikut:

$ dpkg -l 

Untuk mengatur senarai di halaman dan lajur yang sedia untuk dicetak, mengeluarkan arahan berikut.

[dilindungi e -mel] ~ $ dpkg -l | PR -lajur 3 -L 20 2017-01-06 13:19 Page 1 Diharapkan = Tidak diketahui/Pasang II Adduser II APG | Status = tidak/inst/conf- ii adwaita-icon-theme ii app-install-data |/err?=(none)/Reinst-r ii adwaita-icon-theme- ii apparmor ||/ Name ii alsa-base ii apt +++-=================== II ALSA-UTILS II APT-Clone II AccountsService II Anacron II APT-TRANSPORT-HTTPS II ACL II APACHE2 II APT-UTILS II ACPI-Support II APACHE2-BIN II APT-XAPIAN-INTEX II APACH -apt-key II apache2-utils II aptdaemon-data 2017-01-06 13:19 Page 2 II Aptitude II Avahi-Daemon II Bind9-Host II Aptitude-Common II Avahi-Utils II Binfmt-Support II Apturl II Aview II Binutils II Apturl-Common II Banshee II Bison II Archdetect-Deb II Baobab II BLT II Aspell II Base-Files II Blueberry II Aspell-EN II Base-Passwd II Bluetooth II At-SPI2-Core II Bash II Bluez II Attr II Bash-Sampel II Bluez-Cups II Avahi-Autoipd II BC II Blueez-Obexd .. 

Bendera yang digunakan di sini adalah:

  1. --kolum mentakrifkan bilangan lajur yang dibuat dalam output.
  2. -L Menentukan panjang halaman (lalai adalah 66 baris).

10. Perintah TR

Alat ini menerjemahkan atau memadam aksara dari input standard dan menulis hasil kepada output standard.

Sintaks untuk menggunakan tr adalah seperti berikut:

Pilihan $ TR Set1 Set2 

Lihat contoh di bawah, dalam perintah pertama, set1 ([: atas:]) mewakili kes aksara input (semua kes atas).

Kemudian set2 ([: lebih rendah:]) mewakili kes di mana watak -watak yang dihasilkan akan. Perkara yang sama dalam contoh kedua dan urutan melarikan diri \ n Bermakna output cetak pada baris baru:

[dilindungi e -mel] ~ $ echo "www.Tecmint.Com "| tr [: atas:] [: lebih rendah:] www.Tecmint.com [dilindungi e -mel] ~ $ echo "Berita.Tecmint.com "| tr [: lebih rendah:] [: atas:] Berita.Tecmint.Com 

11. lebih banyak arahan

lebih Perintah adalah fail penuras yang berguna yang dibuat pada dasarnya untuk tontonan sijil. Ia menunjukkan kandungan fail dalam format seperti halaman, di mana pengguna boleh menekan [Masukkan] Untuk melihat lebih banyak maklumat.

Anda boleh menggunakannya untuk melihat fail besar seperti itu:

[dilindungi e -mel] ~ $ DMESG | lebih [0.000000] Inisiasi cpuset subsys cgroup [0.000000] Inisiasi CGROUP Subsys CPU [0.000000] memulakan cgroup subsys cpuacct [0.000000] Linux Versi 4.4.0-21-generik ([dilindungi e-mel]) (GCC Versi 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2)) #37-Ubuntu SMP mon Apr 18 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generik 4.4.6) [0.000000] baris arahan: boot_image =/boot/vmlinuz-4.4.0-21-Generic Root = UUID = BB29DDA3-BDAA-4B39-86CF-4A6DC9634A1B RO Splash Tenang VT.handoff = 7 [0.000000] kernel disokong CPU: [0.000000] Intel Genuineintel [0.000000] AMD Authenticamd [0.000000] Centaur Centaurhauls [0.000000] x86/fpu: xstate_offset [2]: 576, xstate_sizes [2]: 256 [0.000000] x86/FPU: Menyokong ciri XSAVE 0x01: 'X87 Point Floating Registers' [0.000000] x86/FPU: Menyokong ciri XSAVE 0x02: 'SSE Registers' [0.000000] x86/FPU: Menyokong ciri XSAVE 0x04: 'AVX Registers' [0.000000] x86/FPU: Ciri -ciri XState Enabled 0x7, saiz konteks adalah 832 bait, menggunakan format 'standard'. [0.000000] x86/FPU: Menggunakan suis konteks FPU 'bersemangat'. [0.000000] E820: peta ram fizikal yang disediakan bios: [0.000000] BIOS-E820: [MEM 0x0000000000000000-0x00000000000009D3FF] Guna [0.000000] BIOS-E820: [MEM 0x000000000009D400-0x00000000000009FFFF] Reserved [0.000000] BIOS-E820: [MEM 0x00000000000E0000-0X0000000000000FFFFF] Reserved [0.000000] BIOS-E820: [MEM 0x0000000000100000-0x000000000000A56Affff] Guna [0.000000] BIOS-E820: [MEM 0x00000000A56B0000-0X0000000000A5EAFFFF] Reserved [0.000000] BIOS-E820: [MEM 0x00000000A5EB0000-0X000000000000AAABEFFF] Digunakan --Lebih-- 

12. kurang arahan

kurang adalah bertentangan dengan lebih Perintah di atas tetapi ia menawarkan ciri tambahan dan sedikit lebih cepat dengan fail besar.

Gunakannya dengan cara yang sama seperti lebih:

[dilindungi e -mel] ~ $ DMESG | kurang [0.000000] Inisiasi cpuset subsys cgroup [0.000000] Inisiasi CGROUP Subsys CPU [0.000000] memulakan cgroup subsys cpuacct [0.000000] Linux Versi 4.4.0-21-generik ([dilindungi e-mel]) (GCC Versi 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2)) #37-Ubuntu SMP mon Apr 18 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generik 4.4.6) [0.000000] baris arahan: boot_image =/boot/vmlinuz-4.4.0-21-Generic Root = UUID = BB29DDA3-BDAA-4B39-86CF-4A6DC9634A1B RO Splash Tenang VT.handoff = 7 [0.000000] kernel disokong CPU: [0.000000] Intel Genuineintel [0.000000] AMD Authenticamd [0.000000] Centaur Centaurhauls [0.000000] x86/fpu: xstate_offset [2]: 576, xstate_sizes [2]: 256 [0.000000] x86/FPU: Menyokong ciri XSAVE 0x01: 'X87 Point Floating Registers' [0.000000] x86/FPU: Menyokong ciri XSAVE 0x02: 'SSE Registers' [0.000000] x86/FPU: Menyokong ciri XSAVE 0x04: 'AVX Registers' [0.000000] x86/FPU: Ciri -ciri XState Enabled 0x7, saiz konteks adalah 832 bait, menggunakan format 'standard'. [0.000000] x86/FPU: Menggunakan suis konteks FPU 'bersemangat'. [0.000000] E820: peta ram fizikal yang disediakan bios: [0.000000] BIOS-E820: [MEM 0x0000000000000000-0x00000000000009D3FF] Guna [0.000000] BIOS-E820: [MEM 0x000000000009D400-0x00000000000009FFFF] Reserved [0.000000] BIOS-E820: [MEM 0x00000000000E0000-0X0000000000000FFFFF] Reserved [0.000000] BIOS-E820: [MEM 0x0000000000100000-0x000000000000A56Affff] Guna [0.000000] BIOS-E820: [MEM 0x00000000A56B0000-0X0000000000A5EAFFFF] Reserved [0.000000] BIOS-E820: [MEM 0x00000000A5EB0000-0X00000000000000AAABEFFF] Guna: 

Ketahui Mengapa 'Kurang' Lebih Cepat daripada 'Lebih' Perintah untuk Navigasi Fail Berkesan di Linux.

Itu semua buat masa ini, beritahu kami tentang mana -mana alat baris perintah yang berguna yang tidak disebutkan di sini, yang bertindak sebagai penapis teks di Linux melalui bahagian komen di bawah.