LinuxSir.cn,穿越时空的Linuxsir!

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

用shell怎样在多个文件里修改某行

[复制链接]
发表于 2006-8-17 11:56:15 | 显示全部楼层 |阅读模式
我有200个文件
每个文件里都有一句abc   ***
其中***是个数字
每个文件里的都不一样
我现在想换成一样的
换成abc   3
我怎样把abc   ***删掉,换成abc   3呢
比较急
请大家多指教
谢谢
发表于 2006-8-17 20:22:18 | 显示全部楼层
随手写了一个,呵呵,希望能用上
当然肯定还有其他更好方法,大家继续跟帖吧,不要鄙视偶的就好啦:)
假设文件名为test开头,比如test1,全部文件就*吧
abc ***我假设后面只有一个数字,根据情况改吧:%

  1. #!/bin/bash                                                                                                
  2. #by hahaghost 2006-08-17

  3. directory = /home/philliu/tmp/
  4. Npart = "abc 3"
  5. Opart = "abc [0-9]"

  6. for file in `find $directory -type f -name "test*" | sort`
  7. do
  8.     sed "s/$Opart/$Npart/g" $file > tmp; mv tmp $file
  9. done

  10. exit 0
复制代码


:cool:
回复 支持 反对

使用道具 举报

发表于 2006-8-17 23:25:00 | 显示全部楼层
bingo
突然觉得bash很有意思
这个礼拜苦读Advanced Bash Script Programming 总算有收获了
回复 支持 反对

使用道具 举报

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

本版积分规则

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