1

这只是出于好奇。

我有一个像这样的制表符分隔文件

jklh    banana  hk
hkl klh jklh
h   hk  banana
h   hk  kljh
asdf    banana  lk
sdfa    jklæ    jklæ
banana  sdf jklæ

通过这样做,我替换了第一列中的“香蕉”,并且输出保持不变:

awk '{gsub(/banana/,0,$1)}; {printf "%s\t%s\t%s\n", $1, $2, $3}' file > outfile

另一方面,这用空格替换了我用 0 替换了香蕉这个词的行中的制表符:

awk '{gsub(/banana/,0,$1)}; {print}' file > outfile

我如何使用OFS或类似的东西打印出替换的行而不替换标签。我一直在玩,没有进展。记住:没有printf

4

1 回答 1

2

设置OFS为选项卡:

awk -v OFS="\t" '{gsub(/banana/,0,$1)}; {print}'
于 2012-05-14T12:02:59.643 回答