bash - 如何使用 BSD/OS X sed 在匹配后删除/删除 X 行

标签 bash shell sed bsd

这个问题已被问过很多次,但给出的答案都是 GNU sed 特定的。

sed -i '' "/${FIND}/,+2d""$FILE"

给出“预期上下文地址”错误。

请有人给我一个如何使用 BSD sed 删除包含匹配项的 X 行和不包含匹配项的 X 行的示例吗?

最佳答案

问题是这根本不是 sed 的工作,而是 awk 的工作。

$ seq 5 | awk '/3/{c=2} !(c&&c--)'
1
2
5

只需将变量c 设置为您想要跳过的行数即可。

另请参阅https://stackoverflow.com/a/18409469/1745001 .

关于bash - 如何使用 BSD/OS X sed 在匹配后删除/删除 X 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38462174/

相关文章:

bash - 尝试通过 npm 永久安装...不工作

linux - 为复杂查询设置 Linux 命令别名

Python pexpect 没有按预期工作

vba - 带引号的 Excel VBA Call Shell

sed搜索2个模式,如果第一个模式不存在,打印第二个模式

Bash 脚本 : Printing a column with having space between the string

php - Linux sed 命令替换字符串不起作用

linux - .php 脚本应返回什么/如何返回 shell 脚本以表示成功/错误?

linux - shell脚本: syntax error near unexpected token `while'

bash - 如何从 Shell 中的路径列表中删除文件名