如何将我所有 ksh 脚本中的 echo
替换为 echo -e
。
示例:
输入
包含以下行的脚本,
echo "\nE-MAILING TO INTERESTED PARTIES....\n"
set echo off
echo -e "\nE-MAILING TO INTERESTED PARTIES....\n"
输出:
我不应该打扰 set echo off 命令,只更改打印 echo 命令。如果已经改成了echo -e
,我就不应该再替换了。对于根目录中的所有脚本,我应该一次性替换它。
echo -e "\nE-MAILING TO INTERESTED PARTIES....\n"
set echo off
echo -e "\nE-MAILING TO INTERESTED PARTIES....\n"
最佳答案
这应该可行 -
sed 's/^echo "/echo -e "/' filename
测试:
[jaypal:~/Temp] cat tmp
echo "\nE-MAILING TO INTERESTED PARTIES....\n"
set echo off
echo -e "\nE-MAILING TO INTERESTED PARTIES....\n"
[jaypal:~/Temp] sed 's/^echo "/echo -e "/' tmp
echo -e "\nE-MAILING TO INTERESTED PARTIES....\n"
set echo off
echo -e "\nE-MAILING TO INTERESTED PARTIES....\n"
查找
和执行
:
find /path/to/directory/ -type f -name "*.ksh" -exec sed -i"bak" 's/^echo "/echo -e "/' {} \;
关于linux - echo 全局替换的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8571719/