日期:2014-05-16  浏览次数:20530 次

vi 中的替换
现在我有这样的一些文字
abc:
as/abc/w_f=5#w_t=6
as/abc/w_f=1#w_t=1
as/abc/w_f=2#w_t=2

def:
as/def/w_f=7#w_t=7
as/def/w_f=9#w_t=9
as/def/w_f=8#w_t=8

ddd:
as/ddd/w_f=9#w_t=9
as/ddd/w_f=8#w_t=8
as/ddd/w_f=2#w_t=2

我想把 def 下所有的 w_f 和 w_t 替换成 s_f 和 s_t
有什么命令可以一下替换掉吗?
先谢谢了

------解决方案--------------------
不熟悉,正在学习中,帮顶。
你可以翻一下手册。
------解决方案--------------------
开始行号,结束行号 s/w_f/s_f/g

开始行号,结束行号 s/w_t/s_t/g

你进vi后,执行set number=1
可以看到行号的,然后你就可以得到起始行号,结束行号了
------解决方案--------------------
对于你提供的文字可以::6,9 s/w/s/g

------解决方案--------------------
Assembly code
 awk 'BEGIN{RS=""}{if(/def/){gsub(/w_f/,"s_t");print $0 >>"newfile"}else print >>"newfile"
}' oldfile