shell脚本查找并删除文件末尾指定行数

发布时间:2020-03-10编辑:脚本学堂
linux shell脚本查找文件,并删除文件末尾指定行数的方法,批量删除匹配指定条件的文件内容,供大家学习参考。

shell/ target=_blank class=infotextkey>shell脚本实现的批量删除程序,有包含www.plcxue.com内容的.shtml文件末尾15行。

一个批处理shell脚本,代码:
 

复制代码 代码示例:
#!/bin/bash
#function:删除最后15行
#author:roc
#date:2012-10-8
#文件log
log=/tmp/del_html.log
echo “##############`date`Start############”>>$log
echo “Work Dir:`pwd`”>>$log
#进入要删除文件的目录
cd /root/
for i in `find ./ -name “*.shtml” -exec grep ‘www.plcxue.com’ -l {} ;`
do
#记录被删除的文件
echo $i | tee -a $log
A=$(sed -n ‘$=’ $i)
sed -i $(($A-15+1)),${A}d $i
done
echo “###############`date`End#############”>>$log

代码说明:
 

A=$(sed -n ‘$=’ $i)
sed -i $(($A-3+1)),${A}d $i

或者使用上面两条命令。删除的是倒数3行的。
如果删除倒数300 ,那就把3改为300 就可以了。
-i 是要在原文件上修改。如果不需要修改,就不用i 了。

另外,删除指定行数到末尾,方法:
其中 ,sed ’2,$d’ -i $i
这条命令是 删除从第2行(包括第2行)到文件末尾的所有行。