मैं इस तरह एक पाठ फ़ाइल है:awk: खोजने के लिए और निश्चित क्षेत्र में की जगह केवल
$ cat test
12 13 22000 s
12 13 32000 s
100 13 2000 s
12 13 300 s
मैं केवल में 100
बदलना चाहते हैं:
$ cat test
12 13 2100 s
12 13 3100 s
100 13 100 s
12 13 300 s
मैं उत्पादन इस तरह बनना चाहता हूँ फ़ील्ड 3 (100
$3
में 2000
में निहित है। awk
का उपयोग करके मैं इस नौकरी को कैसे पूरा कर सकता हूं?
awk '{ sub(/100$/, "2000", $3) }1' file
परिणाम::
की सुविधा देता है का कहना है कि 5000 के साथ मैं कैसे सब कुछ है कि 100 नहीं है जगह ले सकता है ? – discipulus
@lovedynasty: आप कुछ ऐसा करने की कोशिश कर सकते हैं: 'awk' {sub (/ [^ 1] * [^ 0] * [^ 0] * /, "5000", $ 3)} 1 'file'। लेकिन यह आपको अपेक्षित नतीजे प्रदान नहीं कर सकता है। आम तौर पर जब मैं कुछ प्रकार के व्यस्त पैटर्न मिलान करना चाहता हूं, तो मैं कुछ प्रकार के [चारों ओर घूमने वाले] का उपयोग करना चाहता हूं (http://www.regular-expressions.info/lookaround.html)। दुर्भाग्य से, 'awk' इन का समर्थन नहीं करता है और मुझे एक और अधिक शक्तिशाली टूल का उपयोग करने की आवश्यकता होगी। मैं इसके बजाए 'ऑटो-स्प्लिट' मोड में 'perl' का उपयोग करूंगा। HTH। – Steve