-1

我想在使用 awk 的制表符分隔文件的开头添加一列,所以像这样的一行

col1    col2    col3 

最终会像

345    col1    col2    col3 

到目前为止我有这个

awk '{FS="  "; OFS="    "; print '345' $0;}'  file.tsv > output.tsv

但我最终得到

345col1    col2    col3

我哪里错了?

谢谢

4

4 回答 4

2

'345' 后面需要一个逗号

于 2013-07-02T05:12:07.587 回答
0

你可以简单地做:

awk '{print "345\t"$0}' file.tsv > output.tsv
于 2013-07-02T05:13:17.937 回答
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
于 2013-07-02T05:13:55.207 回答
0

这可能对您有用(GNU sed):

sed 's/^/345\t/' file
于 2013-07-02T06:39:08.957 回答