4

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

変更された行をタブで区切るにはどうすればよいですか?

4

1 に答える 1

5

設定する必要があります

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

男 awkを参照してください。

于 2013-03-19T13:48:54.493 に答える