LinuxSir.cn,穿越时空的Linuxsir!

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

请教如何用shell修改多个文件的内容?

[复制链接]
发表于 2006-3-7 10:42:49 | 显示全部楼层 |阅读模式
比如说我有100个文件,每个文件里面都有一行path, 这行path都是下面的格式:

/path  ~/share/work/

我要将这100个文件里面的这行path都修改成:

/path ~/share/backup/

我应该怎么用shell做啊?

请大虾指教!!!
 楼主| 发表于 2006-3-7 10:43:54 | 显示全部楼层
我在radhat 7.2,tcsh下。
回复 支持 反对

使用道具 举报

发表于 2006-3-7 11:22:58 | 显示全部楼层
这些文件都在什么位置?分散还是在同一目录?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-7 13:18:30 | 显示全部楼层
Post by yongjian
这些文件都在什么位置?分散还是在同一目录?

都在一个目录下
回复 支持 反对

使用道具 举报

发表于 2006-3-7 14:21:12 | 显示全部楼层
试用下面的代码:

  1. for a in `grep -ri '/path ~/share/work/' . |awk -F\/ '{print $2}'| sed 's/://g'` ; do cat $a |sed 's/\/path ~\/share\/work\//\/path ~\/share\/backup\//' > F$a ;mv F$a $a;done;
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-3-7 16:00:34 | 显示全部楼层
经过‘终极幻想’兄指点,我把上面的程序改进了一下,试试下面的命令:

  1. ls | xargs sed -i 's/\/path ~\/share\/work\//\/path ~\/share\/backup\//g'
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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