【发布时间】:2012-06-05 21:08:17
【问题描述】:
echo bla | awk 'BEGIN{fname="foo.txt"} {print $0 >>fname; print "rm -f " fname | "/usr/bin/ksh"; close("/usr/bin/ksh"); print $0 >>fname}'
这个命令执行后,我应该得到一个文件“foo.txt”,对吧?
它不起作用。我尝试使用 system("/usr/bin/rm -f " fname) 删除文件,bash 而不是 ksh,Linux,HP-UX,Cygwin,fflush(""),... 只是不起作用! 似乎删除文件后,Awk 就无法再写入同名文件了。
看起来像 Awk 中的一个错误,或者我错过了什么(大时代!)?!
【问题讨论】: