我正在尝试替换
</url></loc>
与
</loc></url>
在我的所有文件中但似乎没有任何效果。有没有办法通过命令行,perl等来做到这一点?任何帮助将不胜感激。
答案 0 :(得分:4)
请注意,许多版本的sed
无法识别-i
。但你可以用perl做同样的事情:
find . -exec perl -i -pe 's|(</url>)(</loc>)|$2$1|g' {} \;
Perl比sed有一个很大的优势,因为扩展它会更容易包括分布在多行上的两个标记的出现。
perl -0777 -i -pe 's|(</url>)(\s*)(</loc>)|$3$2$1|g'
答案 1 :(得分:3)
结帐sed
:
sed -i 's|</url></loc>|</loc></url>|g' <filenames>
答案 2 :(得分:1)
使用sed:
sed -i 's/<\/url><\/loc>/<\/loc><\/url>/g' yourfiles.*
替换其他标签:
sed -E -i 's/<\/(url|what|ever)><\/(loc|any|other)>/<\/\2><\/\1>/g' yourfiles.*
答案 3 :(得分:0)
find . -type f -name "yourname*" -exec sed -i 's/<\/url><\/loc>/<\/loc><\/url>/g' '{}' ';'