2010年11月26日星期五

[sed] 用sed替换文件中的内容

  看到有人用 sed 工具批量替换文件中的内容:
cat error.h | sed -e s/^extern\ int\ errno\;/#include\ \/ > error.h
于是仿照这个用法,来做我的处理。
我的CVS从winnt平台迁移到了linux下面了,原来的文件夹名是大小写不敏感的,现在需要注意了,这不, 出问题了:)
我的模块名原来是webmail_admin, 而在CVS仓库中该文件夹的名字是Webmail_admin, 在winnt下使用没有问题, 但是到了linux下之后, 问题就来了, 找不到仓库了.
于是我要批量讲每一个目录里面的 CVS 目录里的Repository文件修改一下,这个文件记录了当前目录在仓库里的位置,都是 webmail_admin.
# cat changerepository.sh
#!/bin/sh
cat $1 | sed -e s/^webmail_admin/Webmail_admin/ > $1
然后使用 find 命令, 查找和替换:
find . -type f -name Repository -exec ./changerepository.sh {} \;
搞定!

没有评论:

发表评论