如何在路径中使用带有许多额外字符的 sed?

如何在路径中使用带有许多额外字符的 sed?

是否可以用来sed替换下面括号中的整个示例行?我似乎在寻找要使用的分隔符时遇到了麻烦,因为/我想要替换的实际行中存在许多其他特殊字符。

需要更换的线路:

这是一个随机的例子,因为我想要使用的实际线条对眼睛不太友好。

[...]
<example>=(a,b,c);{!@#$%^&*?/};</example>
[...]

如果有任何更适合于此的工具请告诉我。任何帮助将不胜感激。

答案1

如果您想更换全部的仅行,您可以以类似的方式使用简单的解决方法这个答案

这是你的线路:

<example>=(a,b,c);{!@#$%^&*?/};</example>

解决方法是,在文件的其余部分之前打印此行,然后使用 Sed 更改完全由第一行完全匹配组成的任何行。

{ printf '%s\n' '<example>=(a,b,c);{!@#$%^&*?/};</example>'; cat somefile;} |
  sed -e '1h;1d;G;s/^\(.*\)\n\1$/text to change to/;t' -e 's/\n.*$//'

然而——你应该学习哪些字符需要在 Sed 正则表达式中转义, 反正。

相关内容