如何避免使用awk返回系统命令?

时间:2018-05-01 11:49:53

标签: awk system

当我使用awksystem command一样这个

awk 'BEGIN{ if ( system("wc -l file_1") == 0 ) {print "something"} }' text.txt >> file_1

system command的结果已写入我的文件 file_1

0 file_1
something

如何避免那个?或者只是重定向输出?

1 个答案:

答案 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