通过 bash 在 .netrc 文件中查找条目,如果存在则将其删除
Find entry in .netrc file via bash and delete it if exists
在 bash 中,如何在文件 ~/.netrc
中搜索以下字符串并删除该行 加上接下来的两行 如果找到:
machine api.mydomain.com
例子是:
machine api.mydomain.com
user foo
password bar
它应该删除所有三行,但我无法匹配 user
和 password
,因为它们是未知的。唯一的固定值是 machine api.mydomain.com
.
让我们一起google吧-sed or awk: delete n lines following a pattern
所以,答案是sed -e '/machine api.mydomain.com/,+2d' ~/.netrc
。如果需要就地进行更改,请添加 -i
标记。
尝试:
sed -i '' '/^machine api.mydomain.com$/{N;N;d;}' ~/.netrc
当它找到行 machine api.mydomain.com
时,它又读入两行,然后将它们全部删除。其他线路不变。
对于 GNU sed,-i
的参数是可选的。对于 OSX (BSD) sed,参数是必需的,但允许为空,如上所示。
在 bash 中,如何在文件 ~/.netrc
中搜索以下字符串并删除该行 加上接下来的两行 如果找到:
machine api.mydomain.com
例子是:
machine api.mydomain.com
user foo
password bar
它应该删除所有三行,但我无法匹配 user
和 password
,因为它们是未知的。唯一的固定值是 machine api.mydomain.com
.
让我们一起google吧-sed or awk: delete n lines following a pattern
所以,答案是sed -e '/machine api.mydomain.com/,+2d' ~/.netrc
。如果需要就地进行更改,请添加 -i
标记。
尝试:
sed -i '' '/^machine api.mydomain.com$/{N;N;d;}' ~/.netrc
当它找到行 machine api.mydomain.com
时,它又读入两行,然后将它们全部删除。其他线路不变。
对于 GNU sed,-i
的参数是可选的。对于 OSX (BSD) sed,参数是必需的,但允许为空,如上所示。