将多个制表符空格替换成,表格文本数据替换成 CSV
Replace multiple tab spaces into, tabular text data into CSV
我有一组表格数据,为了便于阅读,已经用一个、两个、三个或四个制表符空格进行了调整。现在我想将它导出到 CSV 文件。
所以如果我是对的,我需要将所有单个或多个选项卡 space/s 转换为单个逗号。我试过类似以下的技巧,但无济于事!
awk 'NR>1{gsub("\t\t\t\t",",")}1' < test.data > awk.xls
awk 'NR>1{gsub("\t\t\t",",")}1' < awk.xls > awk.xls
awk 'NR>1{gsub("\t\t",",")}1'< awk.xls > awk.xls
awk 'NR>1{gsub("\t",",")}1'< awk.xls > awk.xls
我该怎么做?
数据一瞥
C(SiH3)2 triplet DFT TO 2.013503 -620.379515709604 3-1/C-SiH3-2/C-SiH3-2-t.out
CF2 singlet CC TO 0.000000 -237.419131945340 3-1/CF2/CF2-CC-s.out
CF2 singlet DFT TO -0.000000 -237.686609290184 3-1/CF2/CF2-s.out
CF2 triplet DFT TO 2.005408 -237.601091999318 3-1/CF2/CF2-t.out
你很接近。
awk 'NR > 1 {gsub(/\t+/, ",")} 1' awk.xls > temp_awk.xls
mv temp_awk.xls awk.xls
应该可以。
/\t+/
将匹配一个或多个选项卡。
有了 awk
,您几乎可以做所有事情,但处理此问题的正确工具是 tr
sed 1d | tr -s '\t' ','
-s
选项用于压缩重复
您只需要:
awk -F'\t+' -v OFS=',' '{=}1' file
我有一组表格数据,为了便于阅读,已经用一个、两个、三个或四个制表符空格进行了调整。现在我想将它导出到 CSV 文件。 所以如果我是对的,我需要将所有单个或多个选项卡 space/s 转换为单个逗号。我试过类似以下的技巧,但无济于事!
awk 'NR>1{gsub("\t\t\t\t",",")}1' < test.data > awk.xls
awk 'NR>1{gsub("\t\t\t",",")}1' < awk.xls > awk.xls
awk 'NR>1{gsub("\t\t",",")}1'< awk.xls > awk.xls
awk 'NR>1{gsub("\t",",")}1'< awk.xls > awk.xls
我该怎么做?
数据一瞥
C(SiH3)2 triplet DFT TO 2.013503 -620.379515709604 3-1/C-SiH3-2/C-SiH3-2-t.out
CF2 singlet CC TO 0.000000 -237.419131945340 3-1/CF2/CF2-CC-s.out
CF2 singlet DFT TO -0.000000 -237.686609290184 3-1/CF2/CF2-s.out
CF2 triplet DFT TO 2.005408 -237.601091999318 3-1/CF2/CF2-t.out
你很接近。
awk 'NR > 1 {gsub(/\t+/, ",")} 1' awk.xls > temp_awk.xls
mv temp_awk.xls awk.xls
应该可以。
/\t+/
将匹配一个或多个选项卡。
有了 awk
,您几乎可以做所有事情,但处理此问题的正确工具是 tr
sed 1d | tr -s '\t' ','
-s
选项用于压缩重复
您只需要:
awk -F'\t+' -v OFS=',' '{=}1' file