栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

sed的返回码不匹配

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

sed的返回码不匹配

如@cnicutar所评论,命令的返回码表示命令是否成功执行。与您在代码/脚本中实现的逻辑无关。

因此,如果您有:

echo "foo"|sed '/bar/ s/a/b/'

sed将返回,

0
但是如果您编写一些语法/表达式错误,或者输入/文件不存在,则sed无法执行您的请求,sed将返回1。

解决方法

这实际上不是 解决方法 。sed具有

q
命令:(来自手册页):

 q [exit-pre]

在这里,您可以根据需要定义退出代码。例如

'/foo/!{q100}; {s/f/b/}'
,如果
foo
不存在,将以代码100退出,否则执行替换f->
b并以代码0退出。

匹配的情况:

kent$  echo "foo" | sed  '/foo/!{q100}; {s/f/b/}'bookent$  echo $?0

无与伦比的案例:

kent$ echo "trash" | sed  '/foo/!{q100}; {s/f/b/}'trashkent$ echo $?100

我希望这回答了你的问题。

编辑

我必须补充一点,以上示例仅用于单行处理。我不知道您的确切要求。当你想得到

exit1
。单行不匹配或整个文件。如果整个文件都不匹配,则可以考虑使用awk,甚至
grep
在进行文本处理之前执行…



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/400898.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号