दूसरे स्तंभ स्थानापन्न करने sed
का उपयोग करना:
sed -r 's/(\w+\s+)\w+\s+(.*)/\1\2/' file
1 hello
2 hi
3 ahoi
स्पष्टीकरण:
(\w+\s+) # Capture the first word and trailing whitespace
\w+\s+ # Match the second word and trailing whitespace
(.*) # Capture everything else on the line
\1\2 # Replace with the captured groups
नोट्स: परिणामों को वापस file
को बचाने के लिए -i
विकल्प का उपयोग करें, -r
विस्तारित नियमित अभिव्यक्ति के लिए है, man
की जांच करें क्योंकि यह कार्यान्वयन के आधार पर -E
हो सकता है।
या awk
का उपयोग केवल निर्दिष्ट कॉलम मुद्रित करने के लिए:
$ awk '{print $1, $3}' file
1 hello
2 hi
3 ahoi
दोनों समाधान वहाँ गुण है, awk
समाधान कॉलम का एक छोटा सा निश्चित संख्या के लिए अच्छा है, लेकिन आप एक अस्थायी फ़ाइल का उपयोग करने की दुकान करने की आवश्यकता है awk '{print $1, $3}' file > tmp; mv tmp file
बदलता है जहां sed
समाधान अधिक लचीला है क्योंकि कॉलम कोई समस्या नहीं है और -i
विकल्प संपादन में करता है।
स्रोत
2012-12-06 10:29:54
'ps' का उपयोग करें और '--format' – artbristol
के साथ आउटपुट को कस्टमाइज़ करें, यह भी व्यवहार्य है, धन्यवाद –
वास्तव में, पीएस का उपयोग करने के बजाए एक शीर्ष आउटपुट को काटना अब बेवकूफ लगता है –