在bash中,如何在文件~/.netrc
中搜索以下字符串,并删除该行以及接下来的两行(如果找到):
machine api.mydomain.com
示例是:
machine api.mydomain.com
user foo
password bar
它应该删除所有三行,但我无法匹配user
和password
,因为这些是未知的。唯一的固定值是machine api.mydomain.com
。
答案 0 :(得分:3)
尝试:
sed -i '' '/^machine api.mydomain.com$/{N;N;d;}' ~/.netrc
当找到行machine api.mydomain.com
时,它会再读取两行,然后将它们全部删除。其他线路没有变化。
对于GNU sed,-i
的参数是可选的。对于OSX(BSD)sed,参数是必需的,但允许为空,如上所示。
答案 1 :(得分:1)
让我们一起谷歌 - sed or awk: delete n lines following a pattern
所以答案是NSCoder
。如果需要进行更改,请添加sed -e '/machine api.mydomain.com/,+2d' ~/.netrc
标记。