我正在尝试替换
</url></loc>
和
</loc></url>
在我所有的文件中,但似乎没有任何效果。有没有办法通过命令行、perl 等来做到这一点?任何帮助将不胜感激。
我正在尝试替换
</url></loc>
和
</loc></url>
在我所有的文件中,但似乎没有任何效果。有没有办法通过命令行、perl 等来做到这一点?任何帮助将不胜感激。
请注意,许多版本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'
签出sed
:
sed -i 's|</url></loc>|</loc></url>|g' <filenames>
使用 sed:
sed -i 's/<\/url><\/loc>/<\/loc><\/url>/g' yourfiles.*
要替换其他标签:
sed -E -i 's/<\/(url|what|ever)><\/(loc|any|other)>/<\/\2><\/\1>/g' yourfiles.*
find . -type f -name "yourname*" -exec sed -i 's/<\/url><\/loc>/<\/loc><\/url>/g' '{}' ';'