LinuxSir.cn,穿越时空的Linuxsir!

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

请教一段sed语句

[复制链接]
发表于 2006-8-16 17:06:56 | 显示全部楼层 |阅读模式
sed -e 's/\(INITRD_MODULES=".*\)"/\1 aaaaa bbbbb"/' < ${initrdcfg} > ${initrdcfg}.tmp

请各位老大给详细讲讲这个语句的语法

我一看到sed后边的/和\就头疼。。。

先谢了
发表于 2006-8-16 22:46:27 | 显示全部楼层
我想他的效果应该是:

  1. INITRD_MODULES="a bc fdka ifdsal"
  2.                 ~~~~~~~~~~~~~~~~ 这是.*
  3. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 这是\( \)里的东西, 就是后面的 \1
复制代码

变成
INITRD_MODULES="a bc fdka ifdsal aaaaa bbbbb"
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-17 09:13:17 | 显示全部楼层
还是没看懂。。。

老兄可否再详细解释下,我对这个语法有些不懂。。。
回复 支持 反对

使用道具 举报

发表于 2006-8-19 10:39:12 | 显示全部楼层
就是将INITRD_MODULES的值,改变为原来的值加上aaaaa bbbbb

e.g.

Original: INITRD_MODULES="xxx"
Modified: INITRD_MODULES="xxxaaaaa bbbbb"

希望能够让你看懂,呵呵
回复 支持 反对

使用道具 举报

发表于 2006-8-21 10:39:06 | 显示全部楼层
本人昨天看了一天sed的书,今天现学现用,请各位指正!

以下是我的理解:
  1. 待匹配模式 -- /\(INITRD_MODULES=".*\)"/  
  2. 要保留的模式 -- \(INITRD_MODULES=".*\)
  3. 替换模式 -- /\1 aaaaa bbbbb"/
  4. 表示第一个保留模式,即INITRD_MODULES=".* -- \1
  5. < -- (不知道什么意思,请大家告诉我)
  6. 输入文件 -- ${initrdcfg}
  7. > ${initrdcfg}.tmp -- 将输出结果重定向到${initrdcfg}.tmp
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-8-24 12:06:22 | 显示全部楼层
INITRD_MODULES="a bc fdka ifdsal"  
变成
INITRD_MODULES="a bc fdka ifdsal aaaaa bbbbb""
回复 支持 反对

使用道具 举报

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

本版积分规则

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