2013-07-08 6 views
5

क्या यह एक बग है ... या क्या कोई स्पष्टीकरण है?सेड कमांड - विकल्प झंडे का आदेश मायने रखता है? (-आईआर बनाम -री)

कृपया ध्यान दें कि मैं एक वैकल्पिक हल के लिए नहीं देख रहा हूँ बल्कि क्यों -ir और -ri का क्रम महत्वपूर्ण ...


निम्न डेटा फ़ाइल में संग्रहीत की कल्पना data.txt

1, StringString, AnotherString 545 
2, StringString, AnotherString 723 
3, StringString, AnotherString 610 
4, StringString, AnotherString 118 
5, StringString, AnotherString 482 

वांछित स्ट्रिंग रूपांतरण

Replace "StringString" with "Strung" 
निम्नलिखित कोड

sed -ir 's/String+/Strung/g' data.txt <-- won't work 

sed -ri 's/String+/Strung/g' data.txt <-- will work 

मैं किसी भी कारण है कि विकल्प झंडे के क्रम पर कोई होता नहीं दिख रहा है के साथ

? कोई स्पष्टीकरण?

Sidenotes: स्विच -i "जगह में फ़ाइल को संपादित करता है" की अनुमति देता है, जबकि -r " नियमित अभिव्यक्ति बढ़ाया" (+ ऑपरेटर की अनुमति)। उबंटू 12.10 पर दिसम्बर 2010 को चल रहा है 4.2.1 दिसंबर 2010।

उत्तर

3

जब -ir कर आपको लगता है कि निर्दिष्ट करते हैं "आर" बैकअप फ़ाइल के लिए प्रत्यय होना चाहिए।

आप -i -r करने के लिए यदि आप उन्हें है कि आदेश

5

क्या आपने sed --help या man sed चेक किया था?

-i[SUFFIX], --in-place[=SUFFIX] 
       edit files in place (makes backup if extension supplied). 
       The default operation mode is to break symbolic and hard links. 
       This can be changed with --follow-symlinks and --copy. 
+0

कर में की जरूरत है सक्षम होना चाहिए !! ओह, मुझे बस निर्देशिका में "data.txtr" नामक फ़ाइल मिली - जिसे बैकअप के रूप में बनाया गया था। मैं प्रत्यय को अलग करने की जगह की उम्मीद कर रहा था लेकिन अब यह समझ में आता है। – somethis

संबंधित मुद्दे