getline
अगली पंक्ति में पढ़ता है और 1. द्वारा NR
काउंटर को बढ़ा देता getline
, awk
शुरू अगली पंक्ति के साथ काम इस्तेमाल करने के बाद। ज्यादातर मामलों में यह वांछित व्यवहार है।पीक, लेकिन उपभोग नहीं करते यह
मेरी विशेष स्थिति में मुझे केवल अगली पंक्ति को देखने की आवश्यकता है और इसकी सामग्री के आधार पर मैंने अगली पंक्ति पढ़ी है या मुझे एक लाइन बैकट्रैक करने की आवश्यकता है।
मैं awk
में एक पंक्ति को कैसे बैकट्रैक कर सकता हूं? मैंने NR
काउंटर मैन्युअल रूप से NR=NR-1
पर सेट करने का प्रयास किया लेकिन यह काम नहीं करता है। या क्या कोई ऐसी विधि है जो NR
को बदले बिना अगली पंक्ति को देखती है?
मुझे एक पंक्ति की तलाश है। बस एक चर में रेखा को सहेजना और बाद में इसका जिक्र करना इस मामले में काम नहीं करता है। मैं awk
में एक साक्षर प्रोग्रामिंग टूल को लागू करने की कोशिश कर रहा हूं, जहां एक मास्टर फ़ाइल में कई सबफाइल हो सकते हैं। इस तरह की उप-फ़ाइल "% file:file1"
जैसी रेखा से शुरू होती है। ऐसी फ़ाइल का अंत तक पहुंच गया है, यदि निचले इंडेंटेशन वाली रेखा या "% file:file2"
जैसी रेखा वाली दूसरी पंक्ति तक पहुंच गई है।
/% file:/
से मेल खाने वाली सभी लाइनों के लिए नियम सेट का उपयोग नहीं किया जाता है, जब मैंने पहले ही इस लाइन को गेटलाइन के साथ पढ़ा है। यही कारण है कि मैं पिछली पंक्ति में NR
रीसेट करना चाहता हूं, फिर awk
लाइन /% file:/
से मेल खाने वाली लाइन को पढ़ेगा और उपयुक्त नियम निष्पादित किया जाएगा।
मैंने TXR नामक एक टेक्स्ट-मुंगिंग भाषा विकसित की जिसमें पैटर्न-उन्मुख ("लंबवत") और चरित्र उन्मुख ("क्षैतिज") मिलान मोड दोनों में अंतर्निहित बैकट्रैकिंग के साथ मिलान पैटर्न शामिल है। लुकहेड गहराई वर्णों या रेखाओं की मनमानी संख्या है। टीएआरआर एक साक्षर प्रोग्रामिंग नोटेशन को संसाधित करने के कार्य के लिए लगभग आदर्श है। सीधे प्रासंगिक उदाहरण देना मुश्किल है; क्या आप साक्षर नोटेशन का पूर्ण विनिर्देश पोस्ट कर सकते हैं? – Kaz