मैं बैश करने के लिए नया हूं और मुझे यकीन नहीं है कि निम्नलिखित कैसे करें: मेरे पास प्रारूप में एक टेक्स्ट फ़ाइल है:
123
John
234
Sally
456
Lucy
...
मैं इसे फॉर्म में एक सीएसवी फ़ाइल में आउटपुट करना चाहता हूं:
123,John
234,Sally
456,Lucy
...
1 उत्तर
sed
के लिए एक अच्छी नौकरी:
sed '/[0-9]/{N;s/\n/,/}' txtfile
यह संख्याओं वाली रेखाओं का पता लगाता है और जब पाया जाता है, तो न्यूलाइन वर्ण को अल्पविराम से बदल देता है।
अगर आप भी बीच-बीच में खाली लाइनों से छुटकारा पाना चाहते हैं,
sed '/[0-9]/{N;s/\n/,/;n;d}' txtfile
ध्यान दें कि यदि आपकी फ़ाइल आपके द्वारा दिए गए नमूने की तरह नियमित है, तो आपको रेगेक्स की भी आवश्यकता नहीं है, 'N;s/\n/,/;n;d'
पर्याप्त होगा।
संबंधित सवाल
नए सवाल
bash
बैश कमांड शेल के लिए लिखी गई लिपियों के बारे में प्रश्नों के लिए। त्रुटियों / वाक्यविन्यास त्रुटियों के साथ शेल स्क्रिप्ट के लिए, कृपया यहां पोस्ट करने से पहले शेलचेक प्रोग्राम (या वेब शेलचेक सर्वर पर https://shellcheck.net) के साथ उन्हें जांचें। बैश के इंटरैक्टिव उपयोग के बारे में सवाल स्टैक ओवरफ्लो की तुलना में सुपर उपयोगकर्ता पर ऑन-टॉपिक होने की अधिक संभावना है।