sed
我正在尝试为下面的命令创建一个命令。我正在尝试v=window.location.search.match
在文件中搜索并将其替换为<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
这是我到目前为止所拥有的:
sed -i.bak 's/v=window.location.search.match/\<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"\>\</script\>/d' myfile.txt
运行此命令后,我收到以下错误:
sed: -e expression #1, char 49: unknown option to `s'
我很困惑应该把每个人放在哪里\
逃跑。
答案1
正如@Babyy 所指出的,如果您的表达式包含/
字符,那么您可以将sed
分隔符更改为不会在输入文件中找到的风险,例如|
或_
sed -i.bak 's|v=window.location.search.match|<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>|' myfile.txt
现在,如果您想替换整行,表达式的第一部分应该匹配从行开头到结尾的所有内容:
sed -i.bak 's|^.*v=window.location.search.match.*$|<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>|' myfile.txt