是否可以用来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 正则表达式中转义, 反正。