我有一组表格数据,为了便于阅读,我们使用一个,两个,三个或四个制表符空间进行了调整。现在我想将其导出为CSV文件。 所以,如果我是对的,我需要将所有单个或多个制表符空间转换为单个逗号。我试过一个伎俩,下面无济于事!
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
答案 0 :(得分:2)
你很亲密。
awk 'NR > 1 {gsub(/\t+/, ",")} 1' awk.xls > temp_awk.xls
mv temp_awk.xls awk.xls
应该有用。
/\t+/
将匹配一个或多个标签。
答案 1 :(得分:2)
您只需要:
awk -F'\t+' -v OFS=',' '{$1=$1}1' file
答案 2 :(得分:1)
使用awk
你可以做几乎所有事情,但正确的工具是tr
sed 1d | tr -s '\t' ','
-s
选项适用于重复重复