LinuxSir.cn,穿越时空的Linuxsir!

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

请教sed问题

[复制链接]
发表于 2006-5-22 17:52:53 | 显示全部楼层 |阅读模式

  1. sed -i "s/\(it.*gbk\)[a-z]*/\1kai/" *.fd  
复制代码

我理解其中的sed "s/\(it.*gbk\)[a-z]*/\1kai/" *.fd 即是将后缀为fd的文件中的it***gbk***替换为it***gbkkai,这我理解,单独的sed -i我也知道是插入,但这里-i 是何意呢?有点不明白。


  1. sed -i "\$aMap cjk.map" updmap.cfg
复制代码

\$干嘛的啊?整个这句话起什么作用啊?

清大虾赐教。谢谢
发表于 2006-5-22 19:03:13 | 显示全部楼层
-i 好像是表示对文件进行操作。其他的,就不知道了。老兄可man sed或info sed看看。
回复 支持 反对

使用道具 举报

发表于 2006-5-26 09:34:21 | 显示全部楼层
首先sed -i不是insert而是--in-place,就是文件中替换了。
理解一个规则表达式有点像初学英语,对一个表达式进行拆分。
"s/\(it.*gbk\)[a-z]*/\1kai/"
首先看命令,是s,那么按照s命令的格式进行拆分
s/search/replace/就是
search=\(it.*gbk\)[a-z]*
replace=\1kai
再来理解search, 可以看到search是2部分, \(it.*gbk\)和[a-z]*
这个就不用解释了
看看replace, \1是指前面search中第一对括号匹配的内容,就是it.*gbk了
我想应该解释清楚了。
回复 支持 反对

使用道具 举报

发表于 2006-5-26 11:34:08 | 显示全部楼层
顶, 说得好
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-26 19:08:44 | 显示全部楼层
Post by czopp
首先sed -i不是insert而是--in-place,就是文件中替换了。
理解一个规则表达式有点像初学英语,对一个表达式进行拆分。
"s/\(it.*gbk\)[a-z]*/\1kai/"
首先看命令,是s,那么按照s命令的格式进行拆分
s/search/replace/就是
search=\(it.*gbk\)[a-z]*
replace=\1kai
再来理解search, 可以看到search是2部分, \(it.*gbk\)和[a-z]*
这个就不用解释了
看看replace, \1是指前面search中第一对括号匹配的内容,就是it.*gbk了
我想应该解释清楚了。

谢谢大虾,看懂了
回复 支持 反对

使用道具 举报

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

本版积分规则

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