GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menentukan lebih banyak ruang untuk pembatas menggunakan cut?

Sebenarnya awk adalah persis alat yang harus Anda perhatikan:

ps axu | grep '[j]boss' | awk '{print $5}'

atau Anda dapat membuang grep seluruhnya sejak awk tahu tentang ekspresi reguler:

ps axu | awk '/[j]boss/ {print $5}'

Namun jika, karena alasan yang aneh, Anda benar-benar tidak bisa gunakan awk , ada hal lain yang lebih sederhana yang dapat Anda lakukan, seperti menciutkan semua spasi putih menjadi satu spasi terlebih dahulu:

ps axu | grep '[j]boss' | sed 's/\s\s*/ /g' | cut -d' ' -f5

grep itu trik, omong-omong, adalah cara yang rapi untuk hanya mendapatkan jboss proses dan bukan grep jboss satu (ditto untuk awk varian juga).

grep proses akan memiliki grep [j]boss literal dalam perintah prosesnya agar tidak tertangkap oleh grep itu sendiri, yang mencari kelas karakter [j] diikuti oleh boss .

Ini adalah cara bagus untuk menghindari | grep xyz | grep -v grep paradigma yang digunakan sebagian orang.


awk version mungkin merupakan cara terbaik untuk melakukannya, tetapi Anda juga dapat menggunakan cut jika Anda pertama kali menekan pengulangan dengan tr :

ps axu | grep jbos[s] | tr -s ' ' | cut -d' ' -f5
#        ^^^^^^^^^^^^   ^^^^^^^^^   ^^^^^^^^^^^^^
#              |            |             |
#              |            |       get 5th field
#              |            |
#              |        squeeze spaces
#              |
#        avoid grep itself to appear in the list

Saya suka menggunakan perintah tr -s untuk ini

 ps aux | tr -s [:blank:] | cut -d' ' -f3

Ini meremas semua ruang putih menjadi 1 ruang. Dengan cara ini memberitahu cut untuk menggunakan spasi sebagai pembatas dihormati seperti yang diharapkan.


Linux
  1. Linux – Bagaimana Membatasi Akses Internet Untuk Pengguna Tertentu Di Lan Menggunakan Iptables Di Linux?

  2. Bagaimana Menyoroti Kata Dalam Output "kucing"??

  3. Linux – Bagaimana Mengetahui Apa yang Harus Diambil Di Dmesg?

  1. Bagaimana cara menghapus awalan kata menggunakan grep?

  2. Cara memahami kata yang tepat jika string memiliki titik di dalamnya

  3. Bagaimana cara menentukan file kunci untuk sshfs?

  1. Cara menemukan bidang terakhir menggunakan 'potong'

  2. Bagaimana cara mengganti nama file dengan spasi menggunakan shell Linux?

  3. cara menentukan direktori target unzip