Kay*_*Kay 12 linux csv shell awk
我有一个文本文件:
ifile.txt
1 4 22.0 3.3 2.3
2 2 34.1 5.4 2.3
3 2 33.0 34.0 2.3
4 12 3.0 43.0 4.4
Run Code Online (Sandbox Code Playgroud)
我想将其转换为csv文件:
ofile.txt
ID,No,A,B,C
1,4,22.0,3.3,2.3
2,2,34.1,5.4,2.3
3,2,33.0,34.0,2.3
4,12,3.0,43.0,4.4
Run Code Online (Sandbox Code Playgroud)
我正在尝试这个,但没有得到结果.
(echo "ID,No,A,B,C" ; cat ifile.txt) | sed 's/<space>/<comma>/g' > ofile.csv
Run Code Online (Sandbox Code Playgroud)
sya*_*dav 18
只有sed,没有别的
sed 's/ \+/,/g' ifile.txt > ofile.csv
Run Code Online (Sandbox Code Playgroud)
猫ofile.csv
1,4,22.0,3.3,2.3
2,2,34.1,5.4,2.3
3,2,33.0,34.0,2.3
4,12,3.0,43.0,4.4
Run Code Online (Sandbox Code Playgroud)
Mur*_*nik 17
awk
这里可能有点矫枉过正.恕我直言,使用tr
像这样的直接替换更简单:
$ cat ifile.txt | tr -s '[:blank:]' ',' > ofile.txt
Run Code Online (Sandbox Code Playgroud)
这是 awk 版本
awk 'BEGIN{print "ID,No,A,B,C"}{print $1","$2","$3","$4","$5}' ifile.txt
输出:
ID,No,A,B,C
1,4,22.0,3.3,2.3
2,2,34.1,5.4,2.3
3,2,33.0,34.0,2.3
4,12,3.0,43.0,4.4
Run Code Online (Sandbox Code Playgroud)