0

我有一个必须编辑的 300 多个文件的列表,所以我认为 sed 命令与 find 和 exec 结合使用可以帮助我。

在做错事之前(比如覆盖我不会修改的文件,或类似的事情),我决定使用 sed 并将他的结果输出到 bash 而不是本地替换。

我正在搜索的字符串是:<tr><td class="button" style=" background:#040404; color:#eee9dc; font-size: 23px; padding:5px 0; text-align:center;"><a href="../Z2/C24357-0/hhcm-LASTMINUTES.html" style=" text-decoration:none; cursor:pointer; color:#eee9dc">Offerte & LastMinute</a></td></tr>

我只想<a href="../Z2/C24357-0/hhcm-LASTMINUTES.html<a href="../../../special_offers.php?lang=it"

由于我是一个菜鸟regex,我将看看那个以体面的方式让我进入正则表达式参数的网页。

现在,我尝试了类似的方法(在单个文件上,只是为了以“安全”的方式查看输出)

 sed s/\<a.*LAST.*html\"
      /\<a href="\.\.\/\.\.\/\.\.\/special_offers\.php\?lang=en"/ 
      C25030-9_3/hhcm-Solo_per_due.html

我得到了那个错误:sed: -e expression #1, char 20: unterminated s' command 就像sed表达式不正确,但我不知道错误是在replacement零件中还是在其他地方。

从现在开始感谢您的时间和精力。

S。

编辑

感谢答案,我通过这样做解决了这个问题

sed 's/<a.*LAST.*html\"/\<a href="..\/..\/..\/special_offers.php?lang=en"/' C25030-9_3/hhcm-Solo_per_due.html
4

1 回答 1

1

首先,您似乎需要将整个 sed 表达式 ( s/.../.../) 放在单引号中,其次,您/最后忘记了(请参阅编辑),第三,不要忘记替换仅在整个模式字符串时才有效在一条线上。

s编辑:有关命令的更多信息(例如,请参见此处):它s/old/new/是最后一个之后的可能标志/。你的命令看起来像s/something/somethingelse/somethingelse,它比它应该的要多,我想。

于 2012-05-17T10:11:05.467 回答