我试过这个:
sed -i 's/'Twas/It certainly was/g' *.txt
任何建议??
答案 0 :(得分:2)
'Twas
中的撇号被解释为一个近距离引用(由shell而不是sed),然后/g
之后的后续单引号被解释为 open quote,它高兴地一直吞噬到脚本的末尾(或命令提示符,然后你得到神秘的>
,这意味着shell认为还有更多的东西要来)。对于这种情况,
sed -i "s/'Twas/It certainly was/g" *.txt
应该工作;但是,shell双引号字符串会执行很多你通常不想要的sed程序。如果那里有任何正则表达式元字符,我会改为
sed -i 's/'\''Twas/It certainly was/g' *.txt
答案 1 :(得分:1)
使用双引号
sed -i "s/'Twas/It certainly was/g" *.txt
答案 2 :(得分:1)
尝试使用以下
grep -rl"旧字符串" directoryPath | xargs sed -i' s / oldString / new String / g'
示例:
grep -rl 10.113.1.115 matchdir | xargs sed -i' s / 10.113.1.115 / 10.113.1.65 / g'