Chinaunix首页 | 论坛 | 博客
  • 博客访问: 222291
  • 博文数量: 136
  • 博客积分: 2919
  • 博客等级: 少校
  • 技术积分: 1299
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-11 09:08
文章分类

全部博文(136)

文章存档

2013年(1)

2011年(135)

我的朋友

分类: LINUX

2011-03-16 10:09:36


    1. # overwrite: copy standard input to output after EOF
    2. # final version

    3. opath=$PATH
    4. PATH=/bin:/usr/bin

    5. case $# in
    6. 0|1) echo 'Usage: overwrite file cmd [args]' 1 >&2; exit 2
    7. esac

    8. file=$1; shift
    9. new=/tmp/overwr1.$$; old=/tmp/overwr2.$$
    10. trap `rm -f $new $old; exit 1` 1 2 15 # clean up files

    11. if PATH=$opath "$@" >$new # collect input
    12. then

    13.     cp $file $old #save original file
    14.     trap '' 1 2 15 # we are committed; ignore signals
    15.     cp $new $file
    16. else
    17.     echo "overwirte: $1 tailed, $file unchanged" 1 >&2
    18.     exit 1
    19. fi
    20. rm -f $new $old

  1. # replace: replace str1 in ifles with str2, in place

  2. PATH=/bin:/usr/bin

  3. case $# in
  4. 0|1|2) echo 'Usage: replace str1 str2 files' 1 >&2; exit 1
  5. esac

  6. left="$1"; right="$2"; shift; shift

  7. for i
  8. do
  9.     ./overwrite $i sed "s@$left@$right@g" $i
  10. done
阅读(378) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~