在每个文本文件的顶部和底部添加新行

时间:2013-02-19 21:33:00

标签: shell command-line ssh command

我有一个包含大约2000个文本文件的文件夹。

在每个文件的顶部,我需要添加以下两行:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

在每个文件的底部我需要添加:

</urlset>

有没有办法通过命令行在所有文件中大规模地执行此操作?

提前致谢!

2 个答案:

答案 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