Saya mencoba mencari tahu bagaimana saya bisa menggunakan AWK untuk mengurangi garis. Misalnya, bayangkan file input adalah:
30
20
Outputnya adalah:
10
Sekarang, sebagai ujian saya mencoba menghitung kolom memori "Bekas" dari:
$ cat /proc/meminfo
Jadi saat ini saya telah menulis ini:
$ grep -P 'MemTotal|MemFree' /proc/meminfo | \
-- Here comes the calculation using AWK
Saya sudah mencoba yang berikut ini:
$ grep -P 'MemTotal|MemFree' /proc/meminfo | \
awk '{print $2}' | awk '{$0-s}{s=$0} END {print s}'
Tapi ini hanya memberi saya baris data terakhir.
Saya telah menemukan solusi yang berfungsi, tetapi saya ragu itu yang paling optimal. Semua pengalaman pengkodean saya memberi tahu saya bahwa pengkodean jumlah baris sangat buruk: P
$ grep -P 'MemTotal|MemFree' /proc/meminfo | \
awk '{print $2}' | awk 'NR == 1{s=$0} NR == 2 {s=s-$0} END {print s}'
line1_$2 - line2_$2 - lineN-$2
? Apakah Anda hanya ingin mengurangi dua baris pertama berturut-turut?