如何删除文件中的字符串?

如何删除文件中的字符串?

所以我想匹配下面的所有内容,然后删除这些字符串行。

[MTT-5634](https://my.atlassian.net/browse/MTT-5634)
[MCC-123](https://my.atlassian.net/browse/MCC-123)
[MTT-7965]: https://my.atlassian.net/browse/MTT-7965
https://my.atlassian.net/browse/MTT-7965

我努力了

sed -e 's/\[(MTT|MCC)-[0-9]{3,4}\?]\?://g;s!.\?http[s]\?://\S*!!g' input.txt > output.txt

答案1

您没有启用-Extended 正则表达式,因此您需要转义一些特殊字符,例如(, ), |, {, }, ?。您的第一个 sed 语句中还有一个:应该删除的尾随。另外,您忘记转义右括号]

您自己更正(但未改进)的命令应该是:

sed -e 's/\[\(MTT\|MCC\)-[0-9]\{3,4\}\?\]\?//g;s!.\?http[s]\?://\S*!!g' infile

在 sh 脚本中使用 sed 时需要转义哪些字符?

相关内容