在linux中搜索并替换一行?
如何在目录中的每个文件中找到 {% extends "a/b/c/d" %} 的每个实例并将其替换为另一个 {% extends "e/f/g/h" %} ?另外,如果同一行的声明后面有任何内容,我想保留它。
我已经使用 perl 进行了如下查看:
perl -pi -e 's/find/replace/g' *.html
但我不了解 perl,也不知道转义查找/替换字符串中所有字符的最佳方法(即 {./、" 等) ?
有更简单的解决方案吗
How can I find and replace every instance of a {% extends "a/b/c/d" %} with another {% extends "e/f/g/h" %} in every file in a directory? Also, if anything comes after the statement on the same line I would like to keep it.
I've looked over using perl like the following:
perl -pi -e 's/find/replace/g' *.html
But I don't know perl and don't know the best way to go about escaping all of the characters in my find/replace strings (ie {. /, ", etc).
Any easier solution?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以在 Perl 的
s/find/replace/g
语法中使用除/
之外的其他字符因此您不必转义
a/b/c/d
中的所有正斜杠:You can use some character other than
/
in perl'ss/find/replace/g
syntaxso you don't have to escape all the forward slashes in
a/b/c/d
:或者
or