我得到输出"nothing",我需要用"0"替换它。例如,我的文件的duse
如下所示:
duse 1
和awk
打印1
:
surange < survey.su | grep duse | awk '{ print $2 }'
因为没有delrt
,代码没有给出该变量的结果:
surange < survey.su | grep delrt | awk '{ print $2 }'
因为delrt
不存在。
添加重定向输出到文件:
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}'