教程集 www.jiaochengji.com
教程集 >  脚本编程  >  shell  >  正文 查找文件并删除末尾指定行数的shell脚本

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

发布时间:2014-09-16   编辑:jiaochengji.com
要求:批量删除程序中,有包含www.jbxue.com内容的.shtml文件末尾15行。涉及很多目录和文件,手动修改是不可能的,于是写了一个批处理shell脚本。

要求:
批量删除程序中,有包含www.jiaochengji.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.jiaochengji.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行)到文件末尾的所有行。

您可能感兴趣的文章:
查找文件并删除末尾指定行数的shell脚本
用shell脚本找出文件中包含指定字段的文件(图文)
删除除了某个文件以外的所有文件
sed单行命令大全 值得收藏
shell 去掉每行结尾的空格,附sed知识
shell脚本学习指南之文本排序与排重等
python shell是什么
inux shell初级入门教程
bash shell脚本执行的几种方法
linux中定时备份mysql并删除五天前的备份文件

[关闭]
~ ~