Bash:将零替换为“nothing”

时间:2015-10-17 20:57:53

标签: linux bash shell awk sed

我输出“没有”,我需要用“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
使用empty后,

file

$ file value 
value: empty

有什么想法吗?感谢任何指针,

1 个答案:

答案 0 :(得分:1)

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}'