सभी सफेद रिक्त स्थान को टेक्स्ट फ़ाइल में अल्पविराम से बदलें


10

मुझे अपने पाठ के अंदर सभी सफेद स्थानों को कॉमा से बदलने की आवश्यकता है। मैं वर्तमान में इस लाइन का उपयोग कर रहा हूं, लेकिन यह काम नहीं करता है: मुझे आउटपुट के रूप में एक टेक्स्ट फ़ाइल मिलती है, जो मूल एक के समान है:

sed 's/[:blank:]+/,/g' orig.txt > modified.txt

धन्यवाद


sed 's / [[: blank:]] \ + /, / g'
मग896

@ mug896 उबंटू 18.04 पर मेरे लिए काम किया मैं डबल वर्ग कोष्ठक और पहले + \ जरूरत
dmontaner

जवाबों:


15

के साथ sed:

sed -e 's/\s\+/,/g' orig.txt > modified.txt

या साथ perl:

perl -pne 's/\s+/,/g' < orig.txt > modified.txt

संपादित करें: पर्ल में नई कहानियों को बाहर करने के लिए आप 's/[^\S\n]+/,/g'अपनी पसंद के सिर्फ सफेद अंतरिक्ष वर्णों के खिलाफ एक डबल नकारात्मक या मैच का उपयोग कर सकते हैं 's/[ \t\r\f]+/,/g'


धन्यवाद, हालांकि अभी भी एक मुद्दा है: मैं "अगली पंक्तियों \ n" को अल्पविराम से बदलना नहीं चाहता, और वर्तमान में perl के साथ कमांड यह कर रहा है। उसने आपके द्वारा लिखी गई sed कमांड, यह अभी भी काम नहीं करता है।
aeuryzm

खेद है कि आपको +संचालक से बचने की जरूरत है , मैंने सिर्फ अपना उत्तर अपडेट किया। पर्ल में न्यूलाइन्स सफेद रंग की हैं, इसलिए यदि आप इसे शामिल नहीं करना चाहते हैं, तो आपको मैन्युअल रूप से अपना व्हाईटस्पेस क्लास करना होगा। मैंने स्वागत के रूप में इसके लिए दो समाधान जोड़े।
कालेब

13

का उपयोग कर tr:

tr -s '[:blank:]' ',' <file

यह किसी भी क्षैतिज व्हाट्सएप को अल्पविराम से बदल देगा। किसी भी दोहराए गए व्हाट्सएप को केवल एक अल्पविराम से बदल दिया जाएगा।


-1
awk '{print $1","}' Servers | tr -d '[\n]' | xargs echo 

यहाँ फ़ाइल का नाम सर्वर है .. इसमें नीचे दी गई सामग्री है ..

Server1
Server2
Server3

यदि हम उपरोक्त कमांड का उपयोग करते हैं तो हम नीचे आउटपुट प्राप्त कर सकते हैं।

Server1,Server2,Server3,


[mohramak@oc3246038448 Desktop]$ cat Servers
Server1
Server2
Server3
[mohramak@oc3246038448 Desktop]$ awk '{print $1","}' Servers | tr -d '[\n]' | xargs echo 
Server1,Server2,Server3,
[mohramak@oc3246038448 Desktop]$ 
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.