使用awk覆盖输入文件

时间:2016-06-13 16:51:14

标签: linux unix command-line

我有以下代码行:

awk -F, '{printf "%09d,%d\n" ,$1,$2}' $newDir/$processNew

它完成了我想要的工作,但不是覆盖当前文件,而是打印出屏幕。

我需要更改什么来覆盖当前输入文件$ processNew?

感谢。

2 个答案:

答案 0 :(得分:2)

使用GNU awk,你可以做到

gawk -i inplace -options 'script' file ...

gawk -i inplace -v INPLACE_SUFFIX=.bak -options 'script' file ...

参考:https://www.gnu.org/software/gawk/manual/html_node/Extension-Sample-Inplace.html

答案 1 :(得分:1)

如果要覆盖源文件,则需要使用临时文件文件:

awk -F, '{printf "%09d,%d\n" ,$1,$2}' $newDir/$processNew > tmp && mv tmp $newDir/$processNew