Pelajari cara menggunakan variabel awk, ekspresi numerik dan operator penugasan - Bagian 8
- 4985
- 1336
- Luis Baumbach
Seri perintah awk semakin menarik, saya percaya, di tujuh bagian sebelumnya, kami berjalan melalui beberapa dasar AWK yang perlu Anda kuasai untuk memungkinkan Anda melakukan beberapa teks dasar atau penyaringan string di Linux.
Dimulai dengan bagian ini, kami akan menyelami area di muka AWK untuk menangani operasi pemfilteran teks atau string yang lebih kompleks. Oleh karena itu, kami akan membahas AWK Fitur seperti variabel, ekspresi numerik dan operator penugasan.
Pelajari variabel awk, ekspresi numerik dan operator penugasanKonsep -konsep ini tidak secara komprehensif berbeda dari yang mungkin Anda temui dalam banyak bahasa pemrograman sebelum cangkang seperti itu, C, Python plus banyak lainnya, jadi tidak perlu banyak khawatir tentang topik ini, kami hanya merevisi ide -ide umum penggunaan umum Fitur -fitur yang disebutkan ini.
Ini mungkin akan menjadi salah satu yang termudah AWK bagian perintah untuk dipahami, jadi duduklah dan mari kita pergi.
1. Variabel awk
Dalam bahasa pemrograman apa pun, variabel adalah pemegang tempat yang menyimpan nilai, saat Anda membuat variabel dalam file program, saat file dieksekusi, beberapa ruang dibuat dalam memori yang akan menyimpan nilai yang Anda tentukan untuk variabel tersebut.
Anda bisa mendefinisikan AWK Variabel dengan cara yang sama Anda mendefinisikan variabel shell sebagai berikut:
variable_name = nilai
Di sintaks di atas:
variable_name
: adalah nama yang Anda berikan variabelnilai
: Nilai yang disimpan dalam variabel
Mari kita lihat beberapa contoh di bawah ini:
computer_name = ”tecmint.com "port_no =" 22 "email =" [email dilindungi] "server =" computer_name "
Lihatlah contoh sederhana di atas, dalam definisi variabel pertama, nilainya tecmint.com
ditugaskan ke variabel nama komputer
.
Selanjutnya, nilainya 22
ditugaskan ke variabel port_no
, Dimungkinkan juga untuk menetapkan nilai satu variabel ke variabel lain seperti pada contoh terakhir di mana kami menetapkan nilai dari nama komputer
ke server variabel.
Jika Anda dapat mengingat, langsung dari bagian 2 dari seri AWK ini jika kami meliput pengeditan lapangan, kami berbicara tentang bagaimana AWK membagi garis input menjadi bidang dan menggunakan operator akses lapangan standar, $
untuk membaca berbagai bidang yang telah diuraikan. Kami juga dapat menggunakan variabel untuk menyimpan nilai -nilai bidang sebagai berikut.
first_name = $ 2 detik_name = $ 3
Dalam contoh di atas, nilai nama depan
diatur ke bidang kedua dan Nama kedua
diatur ke bidang ketiga.
Sebagai ilustrasi, pertimbangkan file bernama nama.txt
yang berisi daftar pengguna aplikasi yang menunjukkan nama depan dan belakang mereka ditambah jenis kelamin. Menggunakan perintah CAT, kita dapat melihat konten file sebagai berikut:
$ nama kucing.txtDaftar konten file menggunakan perintah kucing
Kemudian, kita juga dapat menggunakan variabel nama depan
Dan Nama kedua
Untuk menyimpan nama pertama dan kedua dari pengguna pertama dalam daftar sebagai dengan menjalankan AWK Perintah di bawah ini:
$ awk '/aaron/first_name = $ 2; Second_name = $ 3; cetak first_name, detik_name; nama.txtSimpan variabel menggunakan perintah awk
Biarkan kami juga melihat kasus lain, saat Anda mengeluarkan perintah Uname -A
Di terminal Anda, itu mencetak semua informasi sistem Anda.
Bidang kedua berisi nama host
, Oleh karena itu kita bisa menyimpan nama host dalam variabel yang disebut nama host
dan mencetaknya menggunakan AWK sebagai berikut:
$ uname -a $ uname -a | awk 'hostname = $ 2; cetak nama host; 'Simpan output perintah ke variabel menggunakan awk
2. Ekspresi Numerik
Di dalam AWK, Ekspresi numerik dibangun menggunakan operator numerik berikut:
*
: Operator multiplikasi+
: Operator tambahan/
: Operator Divisi-
: Operator Pengurangan%
: Operator Modulus^
: operator eksponensial
Sintaks untuk ekspresi numerik adalah:
$ operator operator operator2
Dalam bentuk di atas, operand1
Dan operand2
dapat berupa angka atau nama variabel, dan operator
adalah salah satu operator di atas.
Di bawah ini adalah beberapa contoh untuk menunjukkan cara membangun ekspresi numerik:
penghitung = 0 num1 = 5 num2 = 10 num3 = num2-num1 counter = counter+1
Untuk memahami penggunaan ekspresi numerik AWK, Kami akan mempertimbangkan contoh berikut di bawah ini, dengan file Domain.txt
yang berisi semua domain yang dimiliki oleh Tecmint.
berita.tecmint.com tecmint.Com Linuxsay.com windows.tecmint.com tecmint.Com News.tecmint.com tecmint.Com Linuxsay.com tecmint.Com News.tecmint.com tecmint.Com Linuxsay.com windows.tecmint.com tecmint.com
Untuk melihat isi file, gunakan perintah di bawah ini:
$ domain kucing.txtLihat Isi File
Jika kita ingin menghitung berapa kali domain tecmint.com
Muncul dalam file, kita dapat menulis skrip sederhana untuk melakukan itu sebagai berikut:
#!/bin/bash untuk file di [email dilindungi]; lakukan jika [-f $ file]; lalu #print out fileName echo "File adalah: $ file" #print nomor secara bertahap untuk setiap baris yang berisi tecmint.com awk '/^tecmint.com/ counter = counter+1; printf "%s \ n", counter; '$ file else #print kesalahan info input bukan file echo "$ file bukan file, harap tentukan file."> & 2 && keluar 1 fi selesai #mester skrip dengan kode keluar 0 dalam kasus eksekusi yang berhasil keluar 0Skrip shell untuk menghitung string atau teks dalam file
Setelah membuat skrip, simpan dan membuatnya dapat dieksekusi, saat kita menjalankannya dengan file, Domain.txt
Sebagai input, kami mendapatkan output berikut:
$ ./naskah.sh ~/domain.txtSkrip untuk menghitung string atau teks
Dari output skrip, ada 6 baris dalam file Domain.txt
yang berisi tecmint.com
, untuk mengonfirmasi bahwa Anda dapat menghitungnya secara manual.
3. Operator penugasan
Yang terakhir AWK Fitur yang akan kami bahas adalah operator penugasan, ada beberapa operator penugasan di AWK dan ini termasuk yang berikut:
*=
: operator penugasan perkalian+=
: operator penugasan tambahan/=
: operator penugasan divisi-=
: operator penugasan pengurangan%=
: Operator penugasan modulus^=
: operator penugasan eksponensial
Sintaks paling sederhana dari operasi penugasan di AWK adalah sebagai berikut:
$ variable_name = operan operator variabel_name
Contoh:
penghitung = 0 penghitung = penghitung+1 num = 20 num = num-1
Anda dapat menggunakan operator penugasan di atas untuk mempersingkat operasi penugasan di AWK, Pertimbangkan contoh sebelumnya, kami dapat melakukan tugas dalam bentuk berikut:
variable_name operator = operan
penghitung = 0 penghitung+= 1 num = 20 num- = 1
Karena itu, kita dapat mengubah AWK Perintah dalam skrip shell yang baru saja kami tulis di atas +=
Operator penugasan sebagai berikut:
#!/bin/bash untuk file di [email dilindungi]; lakukan jika [-f $ file]; lalu #print out fileName echo "File adalah: $ file" #print nomor secara bertahap untuk setiap baris yang berisi tecmint.com awk '/^tecmint.com/ counter+= 1; printf "%s \ n", counter; '$ file else #print kesalahan info input bukan file echo "$ file bukan file, harap tentukan file."> & 2 && keluar 1 fi selesai #mester skrip dengan kode keluar 0 dalam kasus eksekusi yang berhasil keluar 0Ubah skrip shell
Di segmen seri AWK ini, kami membahas beberapa yang kuat AWK fitur, yaitu variabel, membangun ekspresi numerik dan menggunakan operator penugasan, ditambah beberapa ilustrasi tentang bagaimana kita benar -benar dapat menggunakannya.
Konsep -konsep ini tidak berbeda dari yang ada dalam bahasa pemrograman lain tetapi mungkin ada beberapa perbedaan yang signifikan di bawah pemrograman AWK.
Di dalam Bagian 9, Kami akan melihat lebih banyak AWK fitur yang merupakan pola khusus: MULAI
Dan AKHIR
. Sampai saat itu, tetap terhubung ke Tecmint.
- « 8 perekam layar terbaik untuk perekaman layar desktop di Linux
- 15 Tip dan trik perintah 'sed' yang berguna untuk tugas administrasi sistem linux harian »