csv文件的第1行的CSV文件的第一行的值具有由逗號,像這樣分離的值:擊 - 如何包裹與報價
word1,word2,word3,word4,word5
,但需要與像報價包裹如下:
"word1","word2","word3","word4","word5"
我想要一個命令只處理第1行,並保留文件的其餘部分。
csv文件的第1行的CSV文件的第一行的值具有由逗號,像這樣分離的值:擊 - 如何包裹與報價
word1,word2,word3,word4,word5
,但需要與像報價包裹如下:
"word1","word2","word3","word4","word5"
我想要一個命令只處理第1行,並保留文件的其餘部分。
考慮這個測試文件:
$ cat file.csv
word1,word2,word3,word4,word5
12345,12346,12347,12348,12349
塗在項目報價僅在第一行:
$ sed '1 { s/^/"/; s/,/","/g; s/$/"/ }' file.csv
"word1","word2","word3","word4","word5"
12345,12346,12347,12348,12349
它是如何工作
1 { ... }
這告訴sed只對1號線
s/^/"/
這使得報價在該行開始執行在括號中的命令。
s/,/","/g
這種替換報價逗號引號每個逗號。
s/$/"/
這使得報價在生產線的末端。
工作就像一個魅力。謝謝! –
AWK另一種方法:
awk -F, 'NR==1{ gsub(/[^,]+/,"\"&\"",$0) }1' file
NR==1
- 只考慮第一個記錄感謝羅馬與我分享你的知識。非常感謝。 –
感謝賽勒斯的幫助。我感激你。 –