Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6364800
  • 博文数量: 162
  • 博客积分: 3600
  • 博客等级: 中校
  • 技术积分: 10366
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-19 11:23
个人简介

专注系统运维、网络架构,研究技术解决方案,记录我的思想轨迹、工作学习、生活和关注的领域

文章分类
文章存档

2014年(2)

2013年(16)

2012年(27)

2011年(117)

分类: 系统运维

2012-10-08 12:16:37

一位朋友想批量删除程序中,有包含内容的.shtml文件末尾15行。涉及很多目录和文件,手动修改是不可能的,于是写了一个批处理shell脚本。脚本内容如下:


  1. #!/bin/bash
  2. #function:删除最后15行
  3. #author:roc
  4. #date:2012-10-8
  5. #文件log
  6. log=/tmp/del_html.log
  7. echo “##############`date`Start############”>>$log
  8. echo “Work Dir:`pwd`”>>$log
  9. #进入要删除文件的目录
  10. cd /root/
  11. for i in `find ./ -name “*.shtml” -exec grep ‘’ -l {} \;`
  12. do
  13. #记录被删除的文件
  14. echo $i | tee -a $log
  15. A=$(sed -n ‘$=’ $i)
  16. sed -i $(($A-15+1)),${A}d $i
  17. done
  18. 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行)到文件末尾的所有行。

阅读(15052) | 评论(0) | 转发(8) |
给主人留下些什么吧!~~