我有一个包含大约2000个文本文件的文件夹。
在每个文件的顶部,我需要添加以下两行:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
在每个文件的底部我需要添加:
</urlset>
有没有办法通过命令行在所有文件中大规模地执行此操作?
提前致谢!
答案 0 :(得分:4)
$ cat header
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
$ cat footer
</urlset>
$ cat header file footer
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
one line
</urlset>
将上述内容包装在bash-loop中:
for f in *.xml; do cat header $f footer > tmp && mv tmp $f; done
答案 1 :(得分:1)
单行:
sed -i -e '1 i <?xml version="1.0" encoding="UTF-8"?>\n<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' -e '$s@$@\n</urlset>@' *.xml