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

时间:2013-07-02 05:10:34

标签: 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

我哪里错了?

由于

4 个答案:

答案 0 :(得分:2)

'345'后需要逗号

答案 1 :(得分:0)

您可以这样做:

awk '{print "345\t"$0}' file.tsv > output.tsv

答案 2 :(得分:0)

这个awk应该可以工作:

awk '{FS=OFS="\t"; print '345', $0}' file

编辑:在OSX上输出od,以证明它适用于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

答案 3 :(得分:0)

这可能适合你(GNU sed):

sed 's/^/345\t/' file