查找,替换和转义字符串linux

时间:2009-11-04 20:58:56

标签: replace find

我正在尝试查找字符串的所有实例并替换它们,原始字符串如下所示:

<li><a href="#" onclick="alert('soon!');">Some Text Here</a></li>

替换看起来像这样:

<li><a href="<?php print $somevar;?>/some.php">Something new</a></li>

在CLI中执行此操作的好方法

由于

3 个答案:

答案 0 :(得分:0)

我认为sed命令可以很好地完成工作,前提是您的onclick处理程序和“Some Text Here”不包含任何嵌套的HTML标记,正则表达式可能会混淆替换字符串的结束标记

答案 1 :(得分:0)

在HTML中搜索和替换是一个有保障的问题。在某些时候,有人会通过你格式错误的HTML,即使是最精心设计的正则表达式也会失败。

我肯定会在最高抽象级别使用HTML,最好是使用DOM或SAX的本土工具。

快速修复

  • 使用XSL / XSLT的命令行工具

答案 2 :(得分:0)

在linux命令行中搜索和替换的标准方法是sed,例如:

sed -i yourfilename -e“s%textyouwantoreplace%newtext%g”

唯一的问题是,sed使用正则表达式,所以你需要通过在它之前加一个\来转义可能是通配符的东西,比如写\ $而不是$。

-i表示:就地编辑文件
-e表示:命令行中的下一个内容是要评估的表达式,即在其后的引号中的整个事物 's'的意思是'替代' 'g'表示'全球'替代