sed - 如何在匹配时仅使用 sed 有条件地删除第一行?

标签 sed

我可以用sed检查某些命令的输出(到标准输出)的第一行,如果它与某个模式匹配,就删除第一行?

比如说,命令的输出是这样的:

"AB"
"CD"
"E"
"F"

我希望它变成:
"CD"
"E"
"F"

但是当第一行是 "GH" ,我不想删除该行。

我试过这个,但它不起作用:
<some_command> |sed '1/<pattern>/d'

shell 告诉我:
sed: 0602-403 1/<pattern>/d is not a recognized function.

我只想使用 sed 处理第一行,其他行保持不变。

这里的正确语法是什么?

最佳答案

这可能对你有用:

sed -e '1!b' -e '/GH/!d' file

关于sed - 如何在匹配时仅使用 sed 有条件地删除第一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16126479/

相关文章:

bash 将整数添加到字符串

在 l 命令的末尾添加额外的字符

python - 从文本文件中删除文本

regex - SED 删除带有 REGEX 模式的行

awk - 打印带有字段数据条件的行

xml - Bash 将子节点插入到 XML 文件

sed - 如何使用sed用文件内容替换两个模式之间的多行?

regex - 使 sed 仅替换精确的字符串

linux - 在 Linux 上用 6 GB 文件中的硬制表符替换空格字符

regex - bash,在冒号前提取字符串