Awk - Multiline matching, printing filename and match -
मेरे पास निम्न awk कमांड है:
awk -v आरएस =! -वी ORS = '/ abc / & amp; amp; फाइल में प्रत्येक फ़ाइल में दिखता है, फाइल में प्रत्येक रिकॉर्ड को '!' से अलग करता है, और उसके बाद रिकॉर्ड 'एबीसी' से मेल खाता है, और 'def' उपरोक्त कोड, फ़ाइल के नाम को प्रिंट करेगा। अगर मैं {print FILENAME} को निकालता हूं तो यह मिलान के पूरे रिकॉर्ड को प्रिंट करेगा। एक फ़ाइल ऐसा दिखेगी:
abc1 bce bcd डीईएफ़! abc2 बीस डेफ! मैं फ़ाइल नाम और लाइन 'एबीसी' से मेल खाता हूँ उदाहरण के लिए:
file1 abc1 file2 abc2 abc3 मैं इस बारे में कैसे जा सकता हूँ?
awk 'एफ एन आर == 1 {print FILENAME} / abc /' file1 file2 FNR फ़ील्ड को 1 पर एक नई फ़ाइल पढ़ी जाती है। FNR == 1 सही है, प्रत्येक इनपुट फ़ाइल की पहली पंक्ति में, जहां कार्रवाई की जानी है print FILENAME जो file1 प्रिंट करेगा और file2 / abc / abc से युक्त सभी लाइनों से मेल खायेगा क्योंकि कोई कार्रवाई नहीं की गई है, डिफ़ॉल्ट को प्रिंट किया जा रहा है रिकॉर्ड ( $ 0 ) किया जाता है जो / abc / {print $ 0} file1 abc1 file2 abc2 abc3 लिखने के समान है,
Comments
Post a Comment