पर संक्षिप्त और पोर्टेबल "जुड़ें" मैं एक पंक्ति में एकाधिक लाइनों में कैसे शामिल हो सकता हूं, एक विभाजक के साथ जहां नए-पंक्ति वर्ण थे, और एक पिछला विभाजक से बचने और वैकल्पिक रूप से खाली लाइनों को अनदेखा करते हुए?यूनिक्स कमांड लाइन
उदाहरण। तीन लाइनों के साथ एक पाठ फ़ाइल, foo.txt
पर विचार करें,:
foo
bar
baz
वांछित आउटपुट है:
foo,bar,baz
आदेश अब मैं उपयोग कर रहा हूँ:
tr '\n' ',' <foo.txt |sed 's/,$//g'
आदर्श रूप में यह कुछ होगा इस तरह:
cat foo.txt |join ,
क्या है:
- सबसे पोर्टेबल, संक्षिप्त, पठनीय तरीका।
- गैर-मानक यूनिक्स उपकरण का उपयोग करके सबसे संक्षिप्त तरीका।
बेशक मैं कुछ लिख सकता हूं, या सिर्फ उपनाम का उपयोग कर सकता हूं। लेकिन मुझे विकल्पों को जानने में दिलचस्पी है।
paste -s -d","
यह खाली लाइनों आप का उल्लेख के साथ सौदा नहीं होगा:
(http://stackoverflow.com/questions/2764051/joining-multiple-lines-into-one-with-bash) –