我想在使用 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
编辑:在 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
这可能对您有用(GNU sed):
sed 's/^/345\t/' file