में इस पाइप के रूप में उपयोग की आवश्यकता है:
sed 's/^/"/;s/$/"/'
^
लाइन शुरू करने और $
लंगर के लिए लंगर है लाइन अंत के लिए। sed
लाइन के साथ हम क्रमशः "
और "
के साथ लाइन प्रारंभ और लाइन अंत को बदल रहे हैं।
उदाहरण:
$ echo -e "name,id,2\nname,id,3\nname,id,4"|sed 's/^/"/;s/$/"/'
"name,id,2"
"name,id,3"
"name,id,4"
sed
बिना
:
$ echo -e "name,id,2\nname,id,3\nname,id,4"
name,id,2
name,id,3
name,id,4
आपकी फ़ाइल डॉस लाइन अंत है लगता है। dos2unix
पहले के माध्यम से इसे पाइप करें।
सबूत:
$ cat test.txt
name,id,2
name,id,3
name,id,4
$ sed 's/^/"/;s/$/"/' test.txt
"name,id,2
"name,id,3
"name,id,4
$ cat test.txt|dos2unix|sed 's/^/"/;s/$/"/'
"name,id,2"
"name,id,3"
"name,id,4"
आपका sed कमांड मेरे कंप्यूटर पर काम करता है। आप डबल कोट्स से पहले बैकस्लैश को छोड़ सकते हैं क्योंकि वे एक उद्धृत स्ट्रिंग में बेकार हैं। – Scharron
हम्म, हाँ, यह अजीब है। मुझे एक डबल कोट मिलता है। मेरी मूल फ़ाइल file.csv है - "नाम, आईडी, [[: num:]]" की एक लंबी सूची है। यह क्यों काम नहीं करता है? – minerals
'जी' आवश्यक नहीं है, लेकिन यह आपकी समस्या का कारण नहीं है। आपका मंच क्या है? –