当我使用awk
与system command
一样这个:
awk 'BEGIN{ if ( system("wc -l file_1") == 0 ) {print "something"} }' text.txt >> file_1
system command
的结果已写入我的文件 file_1 :
0 file_1
something
如何避免那个?或者只是重定向输出?
答案 0 :(得分:1)
您似乎认为system()
函数的输出包含它运行的命令的标准输出。它没有。
如果您只想测试是否存在非零大小的文件,可以使用test
命令(在POSIX系统上)进行测试:
awk '
BEGIN{
if ( system("test -s file_1") ) { # a return value of 0 is "false" to awk
print "something"
}
}' text.txt >> file_1