我有以下代码行:
awk -F, '{printf "%09d,%d\n" ,$1,$2}' $newDir/$processNew
它完成了我想要的工作,但不是覆盖当前文件,而是打印出屏幕。
我需要更改什么来覆盖当前输入文件$ processNew?
感谢。
答案 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