GNU/Linux >> Belajar Linux >  >> Linux

12 Perintah Berguna Untuk Memfilter Teks untuk Operasi File yang Efektif di Linux

Pada artikel ini, kami akan meninjau sejumlah alat baris perintah yang bertindak sebagai filter di Linux. Filter adalah program yang membaca input standar, melakukan operasi padanya dan menulis hasilnya ke output standar.

Untuk alasan ini, ini dapat digunakan untuk memproses informasi dengan cara yang ampuh seperti merestrukturisasi output untuk menghasilkan laporan yang berguna, memodifikasi teks dalam file, dan banyak tugas administrasi sistem lainnya.

Dengan itu, di bawah ini adalah beberapa file atau filter teks yang berguna di Linux.

1. Perintah Awk

Awk adalah pemindaian pola dan bahasa pemrosesan yang luar biasa, dapat digunakan untuk membuat filter yang berguna di Linux. Anda dapat mulai menggunakannya dengan membaca seri Awk Bagian 1 hingga Bagian 13.

Selain itu, baca juga awk halaman manual untuk info lebih lanjut dan opsi penggunaan:

$ man awk

2. Perintah Sed

sed adalah editor aliran yang kuat untuk memfilter dan mengubah teks. Kami telah menulis dua artikel bermanfaat tentang sed, yang dapat Anda baca di sini:

  1. Cara menggunakan Perintah GNU ‘sed’ untuk Membuat, Mengedit, dan Memanipulasi file di Linux
  2. 15 Tip dan Trik Perintah 'sed' yang Berguna untuk Tugas Administrasi Sistem Linux Harian

Halaman manual sed telah menambahkan opsi kontrol dan instruksi:

$ man sed

3. Perintah Grep, Egrep, Fgrep, Rgrep

Garis keluaran filter ini cocok dengan pola yang diberikan. Mereka membaca baris dari file atau input standar, dan mencetak semua baris yang cocok secara default ke output standar.

Catatan :Program utamanya adalah grep, variasinya sama dengan menggunakan opsi grep tertentu seperti di bawah ini (dan masih digunakan untuk kompatibilitas mundur):

$ egrep = grep -E
$ fgrep = grep -F
$ rgrep = grep -r  

Di bawah ini adalah beberapa perintah grep dasar:

[email protected] ~ $ grep "aaronkilik" /etc/passwd
aaronkilik:x:1001:1001::/home/aaronkilik:

[email protected] ~ $ cat /etc/passwd | grep "aronkilik"
aaronkilik:x:1001:1001::/home/aaronkilik:

Anda dapat membaca lebih lanjut tentang Apa Perbedaan Antara Grep, Egrep dan Fgrep di Linux?.

4. Kepala Komando

kepala digunakan untuk menampilkan bagian pertama dari sebuah file, ini menampilkan 10 . pertama garis secara default. Anda dapat menggunakan -n num flag untuk menentukan jumlah baris yang akan ditampilkan:

[email protected] ~ $ head /var/log/auth.log  
Jan  2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan  2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session closed for user root
Jan  2 10:51:34 TecMint sudo:  tecmint : TTY=unknown ; PWD=/home/tecmint ; USER=root ; COMMAND=/usr/lib/linuxmint/mintUpdate/checkAPT.py
Jan  2 10:51:34 TecMint sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jan  2 10:51:39 TecMint sudo: pam_unix(sudo:session): session closed for user root
Jan  2 10:55:01 TecMint CRON[4099]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan  2 10:55:01 TecMint CRON[4099]: pam_unix(cron:session): session closed for user root
Jan  2 11:05:01 TecMint CRON[4138]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan  2 11:05:01 TecMint CRON[4138]: pam_unix(cron:session): session closed for user root
Jan  2 11:09:01 TecMint CRON[4146]: pam_unix(cron:session): session opened for user root by (uid=0)

[email protected] ~ $ head  -n 5 /var/log/auth.log  
Jan  2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan  2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session closed for user root
Jan  2 10:51:34 TecMint sudo:  tecmint : TTY=unknown ; PWD=/home/tecmint ; USER=root ; COMMAND=/usr/lib/linuxmint/mintUpdate/checkAPT.py
Jan  2 10:51:34 TecMint sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jan  2 10:51:39 TecMint sudo: pam_unix(sudo:session): session closed for user root

Pelajari cara menggunakan perintah head dengan perintah tail dan cat untuk penggunaan yang efektif di Linux.

5. Perintah ekor

ekor menampilkan bagian terakhir (10 baris secara default) dari file. Gunakan -n num switch untuk menentukan jumlah baris yang akan ditampilkan.

Perintah di bawah ini akan menampilkan 5 . terakhir baris file yang ditentukan:

[email protected] ~ $ tail -n 5 /var/log/auth.log
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Received SIGHUP; restarting.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.

Selain itu, ekor memiliki opsi khusus -f untuk melihat perubahan dalam file secara real-time (terutama file log).

Perintah berikut akan memungkinkan Anda memantau perubahan pada file yang ditentukan:

[email protected] ~ $ tail -f /var/log/auth.log
Jan  6 12:58:01 TecMint sshd[1269]: Server listening on :: port 22.
Jan  6 12:58:11 TecMint sshd[1269]: Received SIGHUP; restarting.
Jan  6 12:58:12 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
Jan  6 12:58:12 TecMint sshd[1269]: Server listening on :: port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Received SIGHUP; restarting.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Received SIGHUP; restarting.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.

Bacalah ekor halaman manual untuk daftar lengkap opsi penggunaan dan instruksi:

$ man tail

6. urutkan Perintah

urutkan digunakan untuk mengurutkan baris file teks atau dari input standar.

Di bawah ini adalah konten file bernama domains.list :

[email protected] ~ $ cat domains.list
tecmint.com
tecmint.com
news.tecmint.com
news.tecmint.com
linuxsay.com
linuxsay.com
windowsmint.com
windowsmint.com

Anda dapat menjalankan perintah sortir sederhana untuk mengurutkan konten file seperti ini:

[email protected] ~ $ sort domains.list
linuxsay.com
linuxsay.com
news.tecmint.com
news.tecmint.com
tecmint.com
tecmint.com
windowsmint.com
windowsmint.com

Anda dapat menggunakan sort perintah dalam banyak cara, baca beberapa artikel berguna tentang perintah sortir sebagai berikut:

  1. 14 Contoh Perintah 'sort' Linux yang Berguna – Bagian 1
  2. 7 Contoh Perintah 'sort' Linux yang Menarik – Bagian 2
  3. Cara Menemukan dan Mengurutkan File Berdasarkan Tanggal dan Waktu Modifikasi
  4. Cara Mengurutkan Output Perintah 'ls' Berdasarkan Tanggal dan Waktu Terakhir Dimodifikasi

7. Perintah unik

unik perintah digunakan untuk melaporkan atau menghilangkan baris yang berulang, perintah ini memfilter baris dari input standar dan menulis hasilnya ke output standar.

Setelah menjalankan sort pada aliran masukan, Anda dapat menghapus baris berulang dengan uniq seperti pada contoh di bawah ini.

Untuk menunjukkan jumlah kemunculan suatu baris, gunakan -c opsi dan abaikan perbedaan dalam kasus saat membandingkan dengan menyertakan -i pilihan:

[email protected] ~ $ cat domains.list
tecmint.com
tecmint.com
news.tecmint.com
news.tecmint.com
linuxsay.com
linuxsay.com
windowsmint.com

[email protected] ~ $ sort domains.list | uniq -c 
2 linuxsay.com
2 news.tecmint.com
2 tecmint.com
1 windowsmint.com 

Bacalah unik halaman manual untuk info dan tanda penggunaan lebih lanjut:

$ man uniq

8. fmt Perintah

fmt pemformat teks optimal sederhana, memformat ulang paragraf dalam file tertentu dan mencetak hasil ke output standar.

Berikut adalah konten yang diekstrak dari file domain-list.txt :

1.tecmint.com 2.news.tecmint.com 3.linuxsay.com 4.windowsmint.com

Untuk memformat ulang konten di atas ke daftar standar, jalankan perintah berikut dengan -w switch digunakan untuk menentukan lebar garis maksimum:

tecmint[email protected] ~ $ cat domain-list.txt 
1.tecmint.com 2.news.tecmint.com 3.linuxsay.com 4.windowsmint.com

[email protected] ~ $ fmt -w 1 domain-list.txt
1.tecmint.com 
2.news.tecmint.com 
3.linuxsay.com 
4.windowsmint.com

9. pr Perintah

pr perintah mengkonversi file teks atau input standar untuk pencetakan. Misalnya di Debian sistem, Anda dapat membuat daftar semua paket yang diinstal sebagai berikut:

$ dpkg -l

Untuk mengatur daftar dalam halaman dan kolom yang siap dicetak, jalankan perintah berikut.

[email protected] ~ $ dpkg -l | pr --columns 3 -l 20  

2017-01-06 13:19                                                  Page 1


Desired=Unknown/Install ii  adduser		ii  apg
| Status=Not/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-index
ii  acpid		ii  apache2-data	ii  aptdaemon
ii  add-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-completion	ii  bluez-cups
ii  avahi-autoipd	ii  bc			ii  bluez-obexd

.....

Bendera yang digunakan di sini adalah:

  1. --column mendefinisikan jumlah kolom yang dibuat dalam output.
  2. -l menentukan panjang halaman (default adalah 66 baris).

10. Perintah tr

Alat ini menerjemahkan atau menghapus karakter dari input standar dan menulis hasil ke output standar.

Sintaks untuk menggunakan tr adalah sebagai berikut:

$ tr options set1 set2

Perhatikan contoh di bawah ini, pada perintah pertama, set1( [:upper:] ) mewakili kasus karakter input (semua huruf besar).

Kemudian set2([:lower:]) mewakili kasus di mana karakter yang dihasilkan akan. Hal yang sama pada contoh kedua dan urutan escape \n berarti hasil cetak pada baris baru:

[email protected] ~ $ echo "WWW.TECMINT.COM" | tr [:upper:] [:lower:]
www.tecmint.com

[email protected] ~ $ echo "news.tecmint.com" | tr [:lower:] [:upper:]
NEWS.TECMINT.COM

11. lebih banyak Perintah

selengkapnya perintah adalah filter teliti file yang berguna dibuat pada dasarnya untuk melihat sertifikat. Ini menunjukkan konten file dalam format seperti halaman, di mana pengguna dapat menekan [Enter] untuk melihat informasi lebih lanjut.

Anda dapat menggunakannya untuk melihat file besar seperti:

[email protected] ~ $ dmesg | more
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.4.0-21-generic ([email protected]) (gcc version 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-generic
 4.4.6)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-21-generic root=UUID=bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b ro quiet splash vt.handoff=7
[    0.000000] KERNEL supported cpus:
[    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: Supporting XSAVE feature 0x01: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x02: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x04: 'AVX registers'
[    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[    0.000000] x86/fpu: Using 'eager' FPU context switches.
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d3ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009d400-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000a56affff] usable
[    0.000000] BIOS-e820: [mem 0x00000000a56b0000-0x00000000a5eaffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000a5eb0000-0x00000000aaabefff] usable
--More--

12. lebih sedikit Perintah

kurang adalah kebalikan dari lebih perintah di atas tetapi menawarkan fitur tambahan dan sedikit lebih cepat dengan file besar.

Gunakan dengan cara yang sama seperti lainnya:

[email protected] ~ $ dmesg | less
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.4.0-21-generic ([email protected]) (gcc version 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-generic
 4.4.6)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-21-generic root=UUID=bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b ro quiet splash vt.handoff=7
[    0.000000] KERNEL supported cpus:
[    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: Supporting XSAVE feature 0x01: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x02: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x04: 'AVX registers'
[    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[    0.000000] x86/fpu: Using 'eager' FPU context switches.
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d3ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009d400-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000a56affff] usable
[    0.000000] BIOS-e820: [mem 0x00000000a56b0000-0x00000000a5eaffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000a5eb0000-0x00000000aaabefff] usable
:

Pelajari Mengapa Perintah 'kurang' Lebih Cepat Dari 'lebih' untuk navigasi file yang efektif di Linux.

Itu saja untuk saat ini, beri tahu kami jika ada alat baris perintah berguna yang tidak disebutkan di sini, yang berfungsi sebagai filter teks di Linux melalui bagian komentar di bawah.


Linux
  1. 10 Perintah Linux Untuk Diagnostik Jaringan

  2. 3 perintah Linux yang harus diketahui untuk manipulasi teks

  3. 3 Perintah Linux yang Berguna untuk Administrator Sistem

  1. Perintah FreeDOS untuk penggemar Linux

  2. 8 perintah Linux untuk manajemen proses yang efektif

  3. Bisakah perintah linux cat digunakan untuk menulis teks ke file?

  1. 5 Perintah Berguna untuk Mengelola Jenis File dan Waktu Sistem di Linux – Bagian 3

  2. 5 perintah Linux yang tidak jelas tetapi berguna untuk sysadmin

  3. 8 perintah navigasi file Linux penting untuk pengguna baru