LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 778|回复: 2

请教一个脚本的编写,可能用sed和awk比较好

[复制链接]
发表于 2007-5-10 11:28:19 | 显示全部楼层 |阅读模式
现有一个文件aa,其内容如下:
.........................................
Patch0:a.patch
Patch1:c.patch
.........................................
现要在最后一个Patch开头的行后添加一行b.patch
添加后文件aa的内容为
.........................................
Patch0:a.patch
Patch1:c.patch
Patch2:b.patch
.........................................

其中Patch2:b.patch中的Patch2是自动生成的!意思就是若原文件是
.........................................
Patch0:a.patch
.........................................
则添加后为
.........................................
Patch0:a.patch
Patch1:b.patch
.........................................
发表于 2007-5-10 12:48:26 | 显示全部楼层
  1. #!/bin/bash
  2. die()
  3. {
  4.     echo $1;
  5.     exit -1;
  6. }
  7. [ "$#" != 2 ] && die "Usage : $0 <filename> patch_name"
  8. no=$(tail -1 $1|awk -F: '{print gensub(/Patch/,"", 1, $1)}')
  9. let "no++"
  10. echo Patch${no}:$2 >> $1
复制代码
回复 支持 反对

使用道具 举报

发表于 2007-5-10 20:07:34 | 显示全部楼层
  1. gawk '$0 !~ /^$/ {a=substr($0,6,1);print $0}END{print "Patch"a+1":b.patch"}' aa>dfile
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表