Bash:将"nothing"替换为零



我得到输出"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}'

最新更新