यह वास्तव में सरल होना चाहिए, लेकिन किसी कारण से यह काम नहीं कर रहा है:
sed -i.bak -E 's/\t/ /' file.txt
टैब वर्णों को बदलने के बजाय, यह t
वर्णों को प्रतिस्थापित कर रहा है। मैंने इसके बारे में हर बदलाव की कोशिश की है, जिसके बारे में मैं सोच सकता हूँ, उद्धृत करने के साथ खेल रहा हूँ, आदि। मैंने Googled और सभी को समान समान भावों का उपयोग करते हुए पाया है और वे उनके लिए काम करते हैं।
-E
एक ओएस एक्स बात है। मैंने सोचा था कि असफलता ओएस एक्स के कुछ अजीब विचित्रता का परिणाम हो सकती है sed
, इसलिए मैंने रूबी के साथ (बिना -i
), और उसी परिणाम के साथ कोशिश की:
ruby -pe '$_.gsub!(/\t/," ")' < file.txt > file.new
मैं ओएस एक्स, और iTerm पर बैश 3.2.51 का उपयोग कर रहा हूं, हालांकि मैं यह नहीं देख सकता कि उनमें से कोई भी बहुत प्रासंगिक कैसे हो सकता है। मैंने कोई भी अजीब पर्यावरण चर निर्धारित नहीं किया है, हालांकि मैं कोई भी पोस्ट कर सकता हूं जो आपको लगता है कि प्रासंगिक हो सकता है।
क्या गलत हो सकता है?
अद्यतन करें : जब मैंने रूबी संस्करण की कोशिश की थी, तब मैंने कुछ अन्य गलती या टाइपो किया होगा, क्योंकि गिल्स बताते हैं कि यहकाम करता है (और मैंने कभी उसे गलत नहीं किया है!)। मुझे यकीन नहीं है कि क्या हुआ, लेकिन मुझे पूरा यकीन है कि यह मेरी गलती रही होगी।
\t
मेंsed
से बयानCTRL-V<TAB>
जहां<TAB>
टैब कुंजी है औरCTRL-V
नियंत्रण कुंजी और हैv
एक साथ दबाया।