किसी फ़ाइल में "\ n" के साथ "\ r \ n" को बदलने का सबसे तेज़ और सबसे मुख्य तरीका?


11

मुझे लगता trहै कि एक अधिक मुख्य विधि है और इस प्रकार किसी दिए गए फ़ाइल के भीतर चीजों को बदलने के लिए एक तेज़ तरीका है।

हालाँकि tr केवल समान मात्रा में वर्णों को बदल सकता है। जिसका अर्थ है ...

2 वर्णों को केवल 2 वर्णों से बदला जा सकता है जिसका अर्थ है प्रतिस्थापित करना

\r\nसाथ \nके माध्यम से सवाल से बाहर हैtr

अगला सबसे अच्छा विकल्प है sed?

की जगह के लिए सबसे अधिक कोर और तेज़ तरीका sed है \r\nसाथ \nटीआर में क्षमताओं की कमी को देखते हुए एक फ़ाइल में?

यदि संभव हो तो एक उदाहरण चाहते हैं।


"मोस्ट कोर" का वास्तव में क्या मतलब है?
कीथ थॉम्पसन

जवाबों:


23

के साथ sed, आप कर सकते हैं:

sed 's/\r$//'

उसी तरह से कर सकते हैं tr, आपको केवल हटाना होगा \r:

tr -d '\r'

हालाँकि, इसके सभी उदाहरणों को हटा दिया जाएगा \r, इसके बाद आवश्यक नहीं \n


2
ये दोनों समान नहीं हैं। पहले '\ r \ n' को '\ n' (प्रभावी रूप से) के साथ बदलें, लेकिन दूसरा जहाँ भी दिखाई देगा, सभी '\ r' को हटा देगा। लाइन के अंत के अलावा, पाठ फ़ाइल में दिखाई देना गाड़ी के लिए असामान्य है, लेकिन ऐसा हो सकता है।
एम्स

4

या उपयोग करें dos2unix

उदाहरण के लिए:

$ echo -ne "1\r\n2" |  od -A n -t x1
 31 0d 0a 32
$ echo -ne "1\r\n2" | dos2unix | od -A n -t x1
 31 0a 32

हम के \r\nसाथ प्रतिस्थापित देख सकते हैं\n


यह ओपी सूची में एक कार्यक्रम नहीं है, लेकिन मेरी राय में काम करने का सबसे साफ तरीका है। मैं व्यक्तिगत रूप से हर बार इसका उपयोग करता हूं, मुझे इस तरह के रूपांतरण की आवश्यकता है।
рüффп
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.