Tabs 如何使awk gsub返回制表符分隔行?

Tabs 如何使awk gsub返回制表符分隔行?,tabs,awk,spaces,separator,gsub,Tabs,Awk,Spaces,Separator,Gsub,我使用awk gsub替换制表符分隔文件特定列中的字符串: cat test.txt 1 1 2032 1 2 1 2032 2 3 1 999 3 4 1 2032 4 5 1 9999 5 但是,即使指定了-F“\t”,修改后的行也由空格分隔: awk -F "\t" '{gsub(/^999$/,"XXX",$3);print}' test.txt 1 1 2032 1 2 1 2032 2 3

我使用awk gsub替换制表符分隔文件特定列中的字符串:

cat test.txt 
1   1   2032    1
2   1   2032    2
3   1   999 3
4   1   2032    4
5   1   9999    5
但是,即使指定了-F“\t”,修改后的行也由空格分隔:

awk -F "\t" '{gsub(/^999$/,"XXX",$3);print}' test.txt
1   1   2032    1
2   1   2032    2
3 1 XXX 3
4   1   2032    4
5   1   9999    5
如何将修改后的行也用制表符隔开?

您应该设置

OFS="\t"
因此:


参见

我认为这意味着设置一个环境变量
OFS=“\t”
,这对我不起作用。我应该仔细阅读。
awk -F "\t" '{gsub(/^999$/, "XXX", $3); print}' OFS="\t" test.txt
awk -F "\t" -v OFS="\t" '{gsub(/^999$/, "XXX", $3); print}' test.txt
awk 'BEGIN{OFS=FS="\t"}{gsub(/^999$/, "XXX", $3); print}' OFS="\t" test.txt