Bash:用零replace“nothing”

我得到的输出“没有”,我需要用“0”代替。 例如,我的文件已经如下所示:

 duse 1 

awk打印1

 surange < survey.su | grep duse | awk '{ print $2 }' 

由于没有delrt ,代码没有给出该variables的结果:

 surange < survey.su | grep delrt | awk '{ print $2 }' 

因为delrt不存在。

只要添加将输出redirect到一个文件:

 surange < survey.su | grep delrt | awk '{ print $2 }' > value 

在使用file后说empty

 $ file value value: empty 

任何想法? 感谢任何指针,

grep不输出任何东西,所以awk表达式永远不会运行。 手动检查可以添加在END块中。

 surange < survey.su | grep delrt | awk '{print$2}END{if(NR==0)print 0}' 

if(NR==0)部分检查是否没有记录被读取(一个空文件),并作出相应的响应。

或者,整个事情可以在awk完成,如果找到匹配,则设置一个标志。

 surange < survey.su | awk '/delrt/{print$2;f=1}END{if(!f)print 0}'