Shell命令输出重定向时排除以特定词结尾的行
排除以“OK”结尾行的Shell命令实现方法
你可以通过管道结合文本过滤工具来实现需求,以下是几种常用方案:
方法1:使用grep反向匹配
利用grep -v(反向匹配,仅显示不匹配指定模式的行)配合行尾锚点$过滤目标行:
command | grep -v 'OK$' > output.txt
OK$:正则表达式规则,$代表行尾,确保只匹配恰好以OK结尾的行> output.txt:将过滤后的结果写入目标文件
方法2:使用sed删除匹配行
通过sed的删除命令d直接移除符合条件的行:
command | sed '/OK$/d' > output.txt
/OK$/d:匹配所有以OK结尾的行并删除,剩余内容输出到文件
处理带空白字符的场景
如果部分行是空白字符(空格/制表符)+ OK结尾,可调整正则匹配空白字符:
grep版本:
command | grep -v '[[:space:]]*OK$' > output.txt
sed版本:
command | sed '/[[:space:]]*OK$/d' > output.txt
[[:space:]]*:匹配零个或多个空白字符,覆盖带空格的结尾场景
内容的提问来源于stack exchange,提问作者Roshan
相关产品推荐
相关产品推荐

