Linux 使用AWK将列添加到TSV(选项卡分隔文件)

Linux 使用AWK将列添加到TSV(选项卡分隔文件),linux,bash,sed,awk,Linux,Bash,Sed,Awk,我想使用awk在选项卡分隔文件的开头添加一列,这样 col1 col2 col3 结果会是 345 col1 col2 col3 到目前为止,我有这个 awk '{FS=" "; OFS=" "; print '345' $0;}' file.tsv > output.tsv 但我最终还是 345col1 col2 col3 我哪里做错了 谢谢您需要在“345”后面加一个逗号您只需执行以下操作: awk '{print "34

我想使用awk在选项卡分隔文件的开头添加一列,这样

col1    col2    col3 
结果会是

345    col1    col2    col3 
到目前为止,我有这个

awk '{FS="  "; OFS="    "; print '345' $0;}'  file.tsv > output.tsv
但我最终还是

345col1    col2    col3
我哪里做错了


谢谢

您需要在“345”后面加一个逗号

您只需执行以下操作:

awk '{print "345\t"$0}' file.tsv > output.tsv
此awk应在以下情况下工作:

awk '{FS=OFS="\t"; print '345', $0}' file
编辑:使用od在OSX上输出,以证明其在OSX上有效:

$> awk '{FS=OFS="\t"; print '345', $0}' file|od -c
0000000    3   4   5  \t   c   o   l   1  \t   c   o   l   2  \t   c   o
0000020    l   3  \n                                                    
0000023

$> uname -a
Darwin US143639.local 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386 i386
这可能适用于您(GNU-sed):


请参阅上面的编辑部分,以验证它是否在OSX上工作。
sed 's/^/345\t/' file