Tabs 如何使awk gsub返回制表符分隔行?
我使用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
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