如何将awk的输出重定向到文件?

时间:2015-01-11 09:42:47

标签: redirect awk

我有这个awk命令来取代" proto"在file.txt中,在replacement.txt中找到字符串,

awk 'FNR==NR{a[++i]=$0; next} /proto/{sub(/proto/, a[++j])} 1' replacement.txt file.txt

它工作正常,但原始文件未编辑。我使用了>>将其重定向到文件,但输出未重定向

awk 'FNR==NR{a[++i]=$0; next} /proto/{sub(/proto/, a[++j])} 1' replacement.txt file.txt >> "file.txt"

有人可以给我一个提示吗?

2 个答案:

答案 0 :(得分:2)

她是如何使用awk

进行的
awk 'some program' file > tmp && mv tmp file

对于您的数据:

awk 'FNR==NR{a[++i]=$0; next} /proto/{sub(/proto/, a[++j])} 1' replacement.txt file.txt > tmp && mv tmp file.txt

答案 1 :(得分:1)

使用gawk> 4.1:

gawk -i inplace 'FNR==NR{a[++i]=$0; next} /proto/{sub(/proto/, a[++j])} 1' replacement.txt file.txt

如果您没有此功能,请使用临时文件名,然后mv temp file.txt