SED: Move multiple lines to the end of a text file -
मैं कई पंक्तियों को फ़ाइल के अंत में < strong>। उदाहरण के लिए:
एबीसीडीईएफ जीआईआईजेकएल एमएनओपीक्यूआर एसयूटीवीएक्स वाईझेड 1234
बनना चाहिए:
STUVWX YZ1234 एबीसीडीईएफ जीआईजेकेएल एमएनओपीक्यूआर
सवाल एकाधिक कोडांतरित करने के लिए sed
का उपयोग करने के लिए एक विधि पूछता है लाइनों । हालांकि, जैसा कि वर्तमान में संपादित किया गया प्रश्न, कई पंक्तियों को नहीं दिखाता है, मैं मानूंगा कि वे वास्तव में अलग पंक्तियां हैं।
पहले तीन पंक्तियों को स्थानांतरित करने के लिए sed
का उपयोग करने के लिए अंत तक:
<प्री> $ बिल्ली फ़ाइल एबीसीडीईएफ जीआईजेकएल एमएनओपीक्यूआरयूटीवीएक्स वाईएस 12234 $ एसएडी '1,3 {एच; डी}; $ {P; x; s / ^ \ n //} 'फ़ाइल STUVWX YZ1234 एबीसीडीईएफ जीआईजेकेएल एमएनओपीक्यूआर
स्पष्टीकरण:
-
1,3 {एच; डी}
1,3
इन आदेशों को केवल 1 से 3 पंक्तियों पर ही संचालन पर रोक देता है। एच
वर्तमान पंक्ति को पकड़ बफर में सहेजने के लिए sed
कहता है d
बताता है sed
इस समय वर्तमान पंक्ति को प्रिंट करने के लिए नहीं।
-
$ {p; x; S / ^ \ n //}
$
इस आदेश को अंतिम पंक्ति में प्रतिबंधित करता है अंतिम पंक्ति को प्रिंट करने के लिए p
बताता है sed
x
पैटर्न बफर का आदान-प्रदान करता है और बफर को पकड़ता है जिस फ़ाइल को हमने फाइल की शुरुआत से बचाया था अब प्रिंट करने के लिए तैयार हैं। प्रिंट करने से पहले, हम बाहरी प्रमुख अक्षरों को हटा देते हैं।
-
अगली पंक्ति को जारी रखने से पहले, sed
पैटर्न बफर में छोड़ी गई कुछ भी प्रिंट करेगा ।
यदि आप मैक ओएसएक्स या अन्य बीएसडी प्लेटफॉर्म पर हैं, तो कोशिश करें:
sed -e '1,3 {H; d ;} '-ए' $ {p; x; s / ^ \ n //}} 'फ़ाइल
सिर और पूंछ का उपयोग
यदि आप पहले से ही परिचित हैं head
और पूंछ
के साथ, यह पहले तीन पंक्तियों को अंत में ले जाने का एक आसान तरीका हो सकता है:
$ tail -n + 4 फाइल; हेड-एन 3 फाइल STUVWX YZ1234 एबीसीडीईएफ जीएचआईजेकेएल एमएनओपीक्यूआर <एच 3> वैकल्पिक <कोड> एसएएस कमांड टिप्पणियों में, पोटोंग सुझाव देता है:
$ sed '1,3 {1 एच; 1! एच; डी}; $ जी' फ़ाइल STUVWX YZ1234 एबीसीडीईएफ जीआईजेकेएल एमएनओपीक्यूआर <पी> एच , एच
, और जी
आदेश अतिरिक्त न्यूलाइन को निकालने के लिए एक प्रतिस्थापन कमांड की आवश्यकता को समाप्त करते हैं।
Comments
Post a Comment