मैं यह पता लगाने की कोशिश कर रहा हूं कि मैं लाइनों को घटाने के लिए AWK का उपयोग कैसे कर सकता हूं । उदाहरण के लिए, इनपुट फ़ाइल की कल्पना करें:
30
20
उत्पादन होगा:
10
अब, एक परीक्षण के रूप में मैं "प्रयुक्त" मेमोरी कॉलम की गणना करने की कोशिश कर रहा हूं:
$ cat /proc/meminfo
इसलिए फिलहाल मैंने यह लिखा है:
$ grep -P 'MemTotal|MemFree' /proc/meminfo | \
-- Here comes the calculation using AWK
मैंने निम्नलिखित कोशिश की है:
$ grep -P 'MemTotal|MemFree' /proc/meminfo | \
awk '{print $2}' | awk '{$0-s}{s=$0} END {print s}'
लेकिन यह सिर्फ मुझे डेटा की अंतिम पंक्ति देता है।
मुझे काम करने का हल मिल गया है, लेकिन मुझे शक है कि यह सबसे इष्टतम है। मेरे सभी कोडिंग अनुभव मुझे बताते हैं कि पंक्तियों की मात्रा को हार्ड कोडिंग भयानक है: पी
$ 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? क्या आप केवल पहले दो लगातार पंक्तियों को घटाना चाहते हैं?