我需要在网站上所有页面(包括.html和.htm)的结束标记之前添加一个javascript标记。我使用了另一个问题的指导,但我的命令不起作用:
find . -name "*.htm*" -print | xargs sed -i 's/<\/head>/<script language="javascript" src="https://secure.appprovider.com.js"><\/script><script language="javascript">InitiateCall('767576styisgsjgshshskshjkshkshs');<\/script><\/head>/g'
我得到:
sed: 1: "./index.html": invalid command code .
我认为问题在于正则表达式和我需要转义特定字符?
最佳答案
是的,模式和替换包含/
(在https:
之后),这将混淆sed
。
您需要对这些进行转义,但对sed
命令使用不同的分隔符可能会使其更具可读性:
's@</head>@<script (etc.) ;</script></head>@g'
另外,一些
sed
实现(在BSD系统上,如OS X)需要-i
标志的参数。您可以通过指定''
给它一个空字符串。关于regex - 使用find和sed使用HTML标签进行批量查找/替换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38242181/