<返回更多

Shell脚本将普通文件转成xml格式文件

2019-11-20    
加入收藏

需求场景:

公司某个站点删除大量稿件,但是这些稿件已经被百度收录,这样用户访问将会出现404,用户体验不太好,所以需要将删除的稿件生成为xml格式文件,并且每个文件为5000条数据,然后提交至百度进行收录删除。

普通文件:

https://www.abc.com/html/ys/13003183/20191115/123456.html

https://www.abc.com/html/ys/13003183/20191115/123765.html

https://www.abc.com/html/ys/13003183/20191115/567567.html

https://www.abc.com/html/ys/13003183/20191115/456456.html

https://www.abc.com/html/ys/13003183/20191115/374456.html

https://www.abc.com/html/ys/13003183/20191115/37456645.html

xml格式文件:

<urlset>

<url> <loc> https://www.abc.com/html/ys/13003183/20191115/37404973.html </loc> </url>

<url> <loc> https://www.abc.com/html/jb/13003184/20191115/37404988.html </loc> </url>

<url> <loc> https://www.abc.com/html/jb/13003184/20191115/37404968.html </loc> </url>

<url> <loc> https://www.abc.com/ylaq/13003182/20191115/37404860.html </loc> </url>

<url> <loc> https://www.abc.com/ylaq/13003182/20191115/37404861.html </loc> </url>

</urlset>

脚本信息:

cat xml.sh
#!/bin/bash
#
sed -i 's/^/<url> <loc> /g' $1
sed -i 's/$/ </loc> </url>/g' $1
name=`echo $1 | awk -F"." '{print $1}'`
echo $name
split -l 5000 $1 ${name}_xml
for filename in `find ./ -name "${name}_xml*"`
do
 sed -i '1 i\<urlset>' $filename
 echo "</urlset>" >> $filename
 mv $filename ${filename}.xml
done

执行:

sh xml.sh 文件名称

脚本讲解:

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>