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