Jadi saya diberitahu untuk melakukan last > lastloggedin
yang membuat file yang menunjukkan kelas masuk terakhir sejak sistem terakhir reboot, dan sekarang saya diminta untuk menulis skrip Awk yang bernama myawk
yang menghitung / menentukan berapa banyak baris lastloggedin
berisi string CFS264
.
saya sudah selesai grep -c CFS264 lastloggedin
text-processing
awk
scripting
TayshaunS
sumber
sumber
awk
? Jika tidak, Anda bisa menggunakannyagrep -c CFS264 lastloggedin | wc -l
.grep -c (something) (something) | wc -l
akan selalu menghasilkan "1".Jawaban:
Untuk memulai, Anda dapat menggunakan
awk
untuk mencari baris dalam file yang berisi string seperti:Bit dalam
{ .... }
akan menjadi perintah yang dibutuhkan untuk menghitung jumlah baris dengan string itu. Untuk mengonfirmasi bahwa cara di atas berfungsi, Anda dapat menggunakan aprint $0
di sana untuk hanya mencetak baris yang berisi string pencarian.Mengenai penghitungan, jika Anda mencari "counter awk" Anda akan menemukan SO Q&A ini berjudul: menggunakan awk untuk menghitung tidak ada catatan . Metode yang ditunjukkan di sana akan cukup untuk apa yang Anda gambarkan:
Contoh
CATATAN: Anda tidak mengatakan bidang mana yang terkait dengan CFS264 di
last
output. Dengan asumsi itu adalah nama pengguna maka Anda selanjutnya dapat membatasiawk
perintah untuk mencari hanya bidang itu seperti:sumber
awk
.Contoh berikut menghitung waktu saya disebutkan tanpa perlu
lastloggedin
file:Jika Anda bersikeras menggunakan atau dipaksa untuk menggunakan
lastloggedin
file, Anda dapat melakukannya dengan cara ini:Gunakan
$1~/some_chars/
untuk mendapatkan semua nama pengguna berisiig karakter yang diberikan atau$1~/^prefix/
untuk mencocokkan hanya nama yang dimulai denganprefix
:PS:
Pindai
man awk
petunjuk lainnya ... ;-)awk
sangat bermanfaat: Anda dapat melakukan banyak hal setelah waktu belajar yang sangat singkat ...sumber
Terakhir dapat menyertakan pengguna login dari reboot sebelumnya. Dengan demikian, yang berikut ini hanya akan mencetak pengguna sejak reboot terakhir:
Bagian pertama dari perintah awk menentukan rentang - mulai dari baris pertama hingga kolom pertama 'reboot'.
sumber