![在 Linux 上的 .js 文件中查找和替换文本(多字符)](https://linux22.com/image/675692/%E5%9C%A8%20Linux%20%E4%B8%8A%E7%9A%84%20.js%20%E6%96%87%E4%BB%B6%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%92%8C%E6%9B%BF%E6%8D%A2%E6%96%87%E6%9C%AC%EF%BC%88%E5%A4%9A%E5%AD%97%E7%AC%A6%EF%BC%89.png)
我有许多同名的 .js 文件 (got.js),我只需要在其中查找和替换一些文本。要查找的文本是:
\x72\x6Fx75\x6E
并且要替换为:(\x72\x6F\x75\x6E
中间只有一个 \)
我尝试使用 SED 进行查找,就是这个:
find '/home/' -name 'got.js' -exec sed -i -e 's%\x72\x6Fx75\x6E%\x72\x6F\x75\x6E%g' '{}' %;
但是我收到错误find: missing argument to '-exec'
。如果我更改%
为\
,它不会显示任何错误,文件的最后修改日期会更改,但文件上没有任何变化。
另外,我应该提到这个\x72\x6Fx75\x6E
文本是一个大的编码短语的一部分。我认为这可能是问题所在,并将整个短语放入 sed 中,但结果是一样的:没有任何变化 :-(
希望有人能帮助我。
谢谢大家!
答案1
尝试这个:
find '/home/' -name 'got.js' -exec sed -i -e 's/\\x72\\x6Fx75\\x6E/\\x72\\x6F\\x75\\x6E/g' {} \;
编辑:原始命令行上有一个拼写错误。../g 后有 2 个单引号