Chinaunix

标题: 用sed如何指定行数范围进行文本替换? [打印本页]

作者: Jass    时间: 2008-10-27 16:53
标题: 用sed如何指定行数范围进行文本替换?
普通的替换只要sed -i 's/old/new/'就行了
我想指定从m行到n行范围内进行替换 不知道如何做?

[ 本帖最后由 Jass 于 2008-10-27 16:55 编辑 ]
作者: ly5066113    时间: 2008-10-27 16:55
原帖由 Jass 于 2008-10-27 16:53 发表
普通的替换只要sed -i 's/old/new/'就行了
我想指定从m行到n行范围内进行替换 不知道如何做?
我知道-n是指定行数 但不知如何做
瞎试了一个sed -n -i 'm,ns/old/new/' 不灵


谁说-n是指定行数?
sed -i 'm,ns/old/new/'
作者: Jass    时间: 2008-10-27 17:27
原帖由 ly5066113 于 2008-10-27 16:55 发表


谁说-n是指定行数?
sed -i 'm,ns/old/new/'

我知错了
敢问大侠 -i的原理是什么?
是一行一行往回写 还是怎么样的?
作者: blackold    时间: 2008-10-27 17:29
标题: 回复 #3 Jass 的帖子
i in-place
作者: ly5066113    时间: 2008-10-27 17:37
原帖由 Jass 于 2008-10-27 17:27 发表

我知错了
敢问大侠 -i的原理是什么?
是一行一行往回写 还是怎么样的?


创建临时文件,然后在覆盖回去。


sed '...' urfile > tmp
mv tmp urfile
没有本质区别




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2