Jadi saya disuruh melakukan last > lastloggedin
yang membuat file yang menunjukkan login terakhir kelas sejak sistem terakhir reboot, dan sekarang saya diminta untuk menulis skrip Awk yang diberi nama myawk
yang menghitung/menentukan berapa banyak baris lastloggedin
berisi string CFS264
.
Saya telah melakukan grep -c CFS264 lastloggedin
Jawaban yang Diterima:
Untuk memulai, Anda dapat menggunakan awk
untuk mencari baris dalam file yang berisi string seperti:
$ awk '/CFS264/ { .... }' lastloggedin
Bit dalam { .... }
akan menjadi perintah yang diperlukan untuk menghitung jumlah baris dengan string itu. Untuk mengonfirmasi bahwa di atas berfungsi, Anda dapat menggunakan print $0
di sana untuk mencetak baris yang berisi string pencarian.
$ awk '/CFS264/ { print $0 }' lastloggedin
Mengenai penghitungan, jika Anda mencari "penghitung awk", Anda akan menemukan T&J SO ini berjudul:using awk to count no of record. Metode yang ditunjukkan di sana cukup untuk apa yang Anda gambarkan:
$ awk '/CFS264/ {count++} END{print count}' lastloggedin
Contoh
$ last > lastloggedin
$ awk '/slm/ {count++} END {print count}' lastloggedin
758
$ grep slm lastloggedin | wc -l
758
$ grep -c slm lastloggedin
758
CATATAN: Anda tidak mengatakan bidang mana yang termasuk dalam CFS264 di last
keluaran. Dengan asumsi itu adalah nama pengguna maka Anda dapat membatasi lebih lanjut awk
perintah untuk mencari hanya bidang itu seperti:
$ awk '$1=="CFS264" { print $0 }' lastloggedin