Aduh

15 Perintah awk yang menarik

15 Perintah awk yang menarik
Artikel ini akan memandu anda melalui beberapa arahan awk yang menarik dan kapan menggunakannya. Teruskan membaca untuk mengetahui!

Pengenalan awk

AWK adalah bahasa yang popular di UNIX dan Linux. Ia mendapat namanya dari pengarangnya: Alfred Aho, Peter Weinberger, dan Brian Kernighan. Perintah awk membenarkan akses ke bahasa pengaturcaraan AWK, yang dirancang untuk memproses data dalam aliran teks.

Digunakan secara popular untuk mengimbas corak dan mempermudah operasi yang kompleks, awk membantu anda menulis pernyataan yang berkesan untuk menentukan corak teks dalam fail. Perintah awk kemudian memproses pernyataan ini dengan membaca satu baris pada satu masa dan mengambil tindakan berdasarkan keadaan yang diberikan.

Ringkasnya, awk mencari dan menggantikan teks, dan membantu menyusun, mengesahkan, atau mengindeks data yang diberikan.

Ciri-ciri AWK

awk dilengkapi dengan banyak ciri unik:

  1. Tidak perlu penyusunan dalam awk
  2. Selalunya digunakan untuk pengambilan data
  3. Biasa digunakan untuk melakukan manipulasi teks
  4. Membantu menjana hasil mengikut keperluan.

Sekarang mari kita meneroka kekuatan perintah awk.

15 Perintah awk yang menarik

Berikut adalah senarai beberapa arahan awk yang menarik:

  1. Mencetak nombor rawak dalam satu set - Katakan anda ingin mencetak beberapa nombor rawak dari kumpulan terpilih. Anda boleh menentukan kuantiti nombor rawak dari kumpulan ini dan meminta awk mencetaknya. Inilah contohnya: mari kita mencetak 10 nombor dari 0 hingga 1000. Jadi arahan awk untuk ini adalah seperti berikut: awk 'BEGIN for (i = 1; i <= 10; i++)
    cetak int (1001 * rand ()) '
  1. Mencari foo atau bar - Bagaimana jika anda ingin menulis baris di mana anda ingin melakukan carian sederhana untuk foo atau bar? Berikut adalah arahan yang membolehkan anda melakukannya: if (/ foo / || / bar /)
    cetak "Dijumpai!"
  1. Menyusun semula padang - Sekiranya anda ingin mencetak bidang tertentu mengikut urutan tertentu, awk boleh melakukannya untuk anda. Andaikan anda ingin mencetak 5 bidang pertama dari set tertentu dalam satu bidang setiap baris, anda boleh menggunakan arahan berikut: awk 'i = 1
    Sementara saya <= 3)
    mencetak $ i
    i++

    inputfile
  1. Memisahkan garis - Dalam sekumpulan fail tertentu, awk dapat membantu memisahkan garis ke dalam bidang, di mana x adalah nama bidang: $ awk 'print $ x, $ x' xyz.txt
  1. Menjalankan beberapa arahan sekaligus - Untuk menjalankan beberapa arahan sekaligus, anda boleh menggunakan titik koma untuk menentukan kedua-dua perintah: $ echo "Selamat pagi! Jack "| awk '$ 2 =" Jill "; cetak $ 0'
  1. Melaksanakan skrip awk - Sekiranya anda ingin menjalankan skrip awk dari fail tertentu, anda boleh membuat kolum sum_column dan tampal skrip di bawah ini dalam file tersebut: #!/ usr / bin / awk -f
    MULAI jumlah = 0
    jumlah = jumlah + $ x
    TAMAT jumlah cetak

    Dalam skrip di atas, x sama dengan lajur yang perlu anda masukkan dalam fail. Setelah berjaya menyelesaikan tugas ini, anda dapat menggunakan perintah berikut untuk menampilkan jumlah lajur x dalam fail input:

    awk -f sum_column input_file.
  1. Menggunakan -f - Semasa membuat pengekodan, sering kali tidak praktikal untuk merujuk ke terminal. awk menggunakan -f untuk melakukan carian dari fail: skrip awk -f.awk inputfile
  1. Melakukan fungsi Matematik - Anda juga boleh menggunakan awk untuk fungsi Matematik yang mudah: awk 'sum = $ 2 + $ 3 + $ 4; purata = jumlah / 3
    > cetak gred $ 1, avg
  1. Hello World dalam awk - Anda boleh mencetak Hello World sederhana dalam awk menggunakan arahan berikut: awk "BEGIN print" Hello World!!""

    Anda juga boleh membuat program Hello World. Kod berikut bukan sahaja akan mencetak mesej halo di mana-mana tetapi juga akan menghasilkan maklumat tajuk:

    $ awk 'BEGIN print "Hello World!" '
  1. Mencetak jumlah bait - Anda dapat mengetahui jumlah bait yang digunakan oleh fail menggunakan arahan berikut: ls -l . | awk 'x + = $ 5; TAMAT \
    print "jumlah bait:" x '
    jumlah bait: 7449362
  1. Menamakan nama log Apache - Anda boleh menggunakan kod berikut untuk menganonimkan log Apache: cat apache-anon-noadmin.log | \
    fungsi awk 'ri (n) \
    Return int (n * rand ());
    MULA srand (); Jika (! \
    ($ 5 dalam jek)) \
    jack [$ 5] = sprintf ("% d.% d.% d.% d ", \
    ri (255), ri (255) \
    , ri (255), ri (255));
    $ 5 = jack [$ 5]; cetak __g5_token5b610ba53dbe4 '
  1. Beroperasi dalam barisan - Sekiranya anda mempunyai alamat yang ingin anda urutkan dalam baris, anda boleh melakukannya menggunakan arahan berikut: BEGIN RS = ""; FS = "\ n"

    cetak "Nama adalah:", $ 1
    cetak "Alamat adalah:", $ 2
    cetak "Bandar dan Negeri adalah:", $ 3
    cetak ""
  1. Menggunakan gelung sementara - Loop sementara terus melakukan tindakan yang diberikan kepadanya dalam proses berulang sehingga keadaannya benar. Sebagai contoh, untuk mencetak nombor dari 1 hingga 100, anda boleh menggunakan kod berikut: awk 'BEGIN i = 1; Sementara saya < 100) print i; ++i '
  1. Menggunakan gelung do-while - Dalam gelung ini, keadaan akan dilaksanakan di hujung gelung walaupun penyataannya salah. Contohnya, untuk mencetak nombor dari 1 hingga 100 menggunakan gelung buat sementara waktu, anda boleh menggunakan kod berikut: awk 'BEGIN i = 1; adakah cetak i; ++ i semasa (i < 100) '
  1. Menggunakan BEGIN dan TAMAT - Kata kunci BEGIN digunakan untuk membuat tajuk untuk memproses rekod anda: $ awk 'BEGIN print "XXX"

    Dengan cara yang sama, kata kunci TAMAT digunakan setelah memproses data:

    TAMAT cetak "Footer fail" '

Ini menyimpulkan senarai 15 arahan awk yang menarik. Anda boleh mencubanya dan melihat hasilnya. Semoga anda merasa berguna. Sekiranya anda menganggap artikel ini menarik, anda boleh meneroka Mastering Linux Shell Scripting - Second Edition. Dalam buku ini, anda akan menemui semua yang perlu anda ketahui untuk menguasai skrip shell dan membuat pilihan tepat mengenai elemen yang anda gunakan.

OpenTTD vs Simutrans
Membuat simulasi pengangkutan anda sendiri boleh menyeronokkan, santai dan sangat menarik. Itulah sebabnya anda perlu memastikan bahawa anda mencuba s...
Tutorial OpenTTD
OpenTTD adalah salah satu permainan simulasi perniagaan yang paling popular di luar sana. Dalam permainan ini, anda perlu membuat perniagaan pengangku...
SuperTuxKart untuk Linux
SuperTuxKart adalah tajuk hebat yang direka untuk membawa anda pengalaman Mario Kart secara percuma pada sistem Linux anda. Ia cukup mencabar dan meny...