【发布时间】:2016-06-14 01:45:33
【问题描述】:
我有以下代码行:
awk -F, '{printf "%09d,%d\n" ,$1,$2}' $newDir/$processNew
它会做我想做的事,但不是覆盖当前文件,而是打印出屏幕。
我需要改变什么来覆盖当前的输入文件 $processNew ?
谢谢。
【问题讨论】:
标签: linux unix command-line
我有以下代码行:
awk -F, '{printf "%09d,%d\n" ,$1,$2}' $newDir/$processNew
它会做我想做的事,但不是覆盖当前文件,而是打印出屏幕。
我需要改变什么来覆盖当前的输入文件 $processNew ?
谢谢。
【问题讨论】:
标签: linux unix command-line
如果要覆盖源文件,需要使用临时文件file:
awk -F, '{printf "%09d,%d\n" ,$1,$2}' $newDir/$processNew > tmp && mv tmp $newDir/$processNew
【讨论】:
使用 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
【讨论】: