我正在尝试使用sed从文件夹(对于android中的运行程序)递归替换所有shabang。 当我尝试使用“正常单词”时,该命令效果很好但是当我尝试使用shabang时会变得很头疼。我尝试了一切,我得到了错误:
替换表达式中的错误选项
无与伦比的'/'
未找到活动
我是新手,这可能是错误的,所以这里是代码(tsst是我的文件夹):
grep -rl "env python" tsst |xargs sed -i "s/\#!/usr/bin/env python/\#!/system/python2.7.9//g"
我也试过变量:(代码的第一部分很好..我只是在有问题的地方复制。)
sed -i "s/$old/$new/g"
sed -i 's/"$old"/"$new"/g'
sed -i "s/'\#!\/usr\/bin\/env python'/'\#!\/system\/python2.7.9\/'/g"
我做错了什么?
答案 0 :(得分:1)
试试这个正则表达式。您不能将/
混合为正则表达式分隔符和要匹配的实际字符。您可以使用任何字符作为正则表达式分隔符,例如|
,只要您在所有3个点中使用它而不是/
。
$ echo '#!/usr/bin/env python' | sed 's|#!/usr/bin/env python|#!/system/python2.7.9|g'
#!/system/python2.7.9