sed 是否有类似于 的选项grep -q
,它返回 1 或 0 取决于它是否实际找到字符串匹配?
我问的原因是在某些情况下我sed
以特定方式使用,例如在给定行号之后查找第一个匹配项,或者设置捕获组并以这种方式获取字符串,所以我想看看是否sed
有内置的东西可以检查如果返回任何内容,因为我想向用户抛出错误并在找不到匹配项时退出我的 bash 脚本
你最好使用grep -q
这个,但如果你绝对想使用sed
那么这里是你如何复制功能......
cat myFile | sed -n "/myString/p" | wc -l
这将输出文件中“myString”的出现次数。从这里你可以做一个简单的测试,看看这个数字是否大于 0,如果是,则返回 1,如果不是,则返回 0。这是一个演示如何完成此操作的脚本......
#!/bin/bash
count=$(cat myFile | sed -n "/\myString/p" | wc -l)
final=0
if [ count -gt 0 ]; then
final=1
else
final=count
fi
echo final
上面的脚本将打印出 1 或 0,如果找到字符串,则打印 1,如果没有,则打印 0(注意:我没有检查过这个,但没有理由不工作)。
同样,grep -q
这是工作的工具,如果可能的话,我建议使用它。