使用sed with find插入文件内容

时间:2016-09-15 15:50:40

标签: linux

如何添加ex:

idea before </svg> in all svg files  ?

find -name "*.svg" -exec sed -i s/"</svg>"/"idea</svg>"/g {} \;

它也不适用于

find -name "*.svg" -exec sed -i s|"</svg>"|"idea</svg>"/g {} \;

2 个答案:

答案 0 :(得分:1)

你的嵌入式斜线引起了混乱:

sed -i s/"</svg>"/"idea</svg>"/g    ##wrong##

选择一个不会导致问题的分隔符。把整个事情放在引号中。

sed -i "s=</svg>=idea</svg>=g"

答案 1 :(得分:0)

sed是一个行编辑器,sed -i.old将输入文件修改到位并将副本保存到.old文件。我们必须匹配</svg>并将其替换为'idea'并将匹配的部分放回(\1

sed -i.old 's/\(\<\/svg\>\)/idea\1/g' *.svg

(请注意,我们无需为此找到,*.svg sed就足够了。)