मैं awk
स्क्रिप्ट लिखने की कोशिश कर रहा हूं जो कुछ शर्तों की जांच करता है और उन शर्तों को पूरा करने वाली लाइनों को दूर करता है।किसी शर्त को क्रियान्वित होने पर अगली पंक्ति में जाने के लिए आपको अजीब कैसे मिलता है?
विशिष्ट स्थिति फ़ाइल की पहली दो पंक्तियों और xyzzy:
के साथ शुरू होने वाली किसी भी पंक्ति को फेंकना है। इसके लिए मैं कोडित:
awk '
NR < 2 {}
/^xyzzy:/ {}
{print}'
यह सोच कर कि यह लाइनें जहां उन दो शर्तों में से किसी से मुलाकात की और प्रिंट थे अन्यथा फेंक होगा।
दुर्भाग्यवश, ऐसा लगता है कि print
संसाधित किया जा रहा है, भले ही रेखा दो अन्य पैटर्नों में से एक से मेल खाती हो।
क्या सी-जैसे continue
कार्रवाई है जो अगली पंक्ति के लिए मौजूदा लाइन के लिए अन्य सभी शर्त जांच को अनदेखा कर देगी?
मुझे लगता है कि मैं तीसरे नियम के रूप में ((NR > 1) && (!/^xyzzy:/)) {print}
जैसे कुछ का उपयोग कर सकता हूं लेकिन यह मेरे लिए बदसूरत लगता है।
वैकल्पिक रूप से, ऐसा करने का कोई और तरीका है?
मैं कोई विशेषज्ञ हूँ, लेकिन यहाँ वास्तव में एक अच्छा [ट्यूटोरियल] (http://www.grymoire.com/Unix/Awk है:
आप निम्न मुहावरा देखेंगे। एचटीएमएल) जब मैंने इसे सीखना शुरू किया तो मुझे बहुत मदद मिली। और निश्चित रूप से एक बहुत ही [विस्तृत गाइड] है (http://www.gnu.org/software/gawk/manual/gawk.pdf) भी। लेकिन मुझे किताबों पर ट्यूटोरियल पसंद है। :) –