我尝试以下,但不添加''
这个例子在linux下搜索和替换?
我想更换FILENAME_LOGIN
到'login.php'
试过这样:
grep -r "login.php" -l | tr '\n' ' ' | xargs sed -i 's/"login.php"/'login.php'/g'
但是,它给了我login.php
不'login.php'
谢谢
我尝试以下,但不添加''
这个例子在linux下搜索和替换?
我想更换FILENAME_LOGIN
到'login.php'
试过这样:
grep -r "login.php" -l | tr '\n' ' ' | xargs sed -i 's/"login.php"/'login.php'/g'
但是,它给了我login.php
不'login.php'
谢谢
你只需要sed
此:
sed -i -e "s/FILENAME_LOGIN/'login.php'/g" /your/file
我想通了:
find ./ -type f -exec sed -i -e 's/FILENAME_LOGIN/'login.php'/g' {} \;
是的,这将搜索任何子目录中的文件,很好! :) – campovski
它不会在文本周围添加单引号。 –
find ./ -type f -exec sed -i -e 's/FILENAME_LOGIN/'\''login.php'\''/g' {} \;
感谢您使用此代码段,它可能会提供一些即时帮助。通过展示*为什么*这是一个很好的解决方案,对未来的读者会有更好的解决方案,这将为它的教育价值提供一个合适的解释[//大大提高](// meta.stackexchange.com/q/114762)但不完全相同的问题。即使像“你忘了引用这些人物”这样简单的东西也是一个很大的改进。 –
未经检验的,但试图逃跑的单引号:'xargs的SED -i的/“登录。 PHP的“/ \ '的login.php \'/ g'' - 或双逃生:'xargs的SED -i 'S/”的login.php“/ \\' 的login.php \\'/ g'' –
你可以不要在单引号分隔的脚本中包含单引号,无论您尝试多少次逃离它们。 –