标题: 如何替换最后出现的某个字符 [打印本页] 作者: Jenny.Palmy 时间: 2008-12-19 09:27 标题: 如何替换最后出现的某个字符 例如有文件:
[ w '0 aa n ] [ t '0 ax] d
t [ ch '0 ae f ]
d [ jh '0 ah ] [ s t '0 ih] s
[ '0 ah v ]
[ dh '0 ] ax
我想每行最后出现的"]"替换成"#", 替换后的结果为:
[ w '0 aa n ] [ t '0 ax # d
t [ ch '0 ae f #
d [ jh '0 ah ] [ s t '0 ih # s
[ '0 ah v #
[ dh '0 # ax
请问应该用什么命令, 先谢谢了作者: ly5066113 时间: 2008-12-19 09:34
sed 's/\(.*\)]/\1#/'作者: 4Aiur 时间: 2008-12-19 09:34
sed 's/]\(.\{0,3\}$\)/#\1/'作者: biglazybug 时间: 2008-12-19 09:39 标题: 回复 #2 ly5066113 的帖子 昨天的故技重施作者: ly5066113 时间: 2008-12-19 09:42 标题: 回复 #4 biglazybug 的帖子 那我抄个黑哥的:
sed 's/]\([^]]*\)$/#\1/'作者: blackold 时间: 2008-12-19 09:44 标题: 回复 #5 ly5066113 的帖子 作者: biglazybug 时间: 2008-12-19 09:48 标题: 回复 #5 ly5066113 的帖子 嘿嘿 我也尝试的写了 就是对于[^]]的时候我写一个[^\]] 老是不知道什么时候该转义[^] 都不用转吗作者: biglazybug 时间: 2008-12-19 09:49 标题: 回复 #6 blackold 的帖子 黑哥牙都笑掉一颗作者: ly5066113 时间: 2008-12-19 09:50 标题: 回复 #7 biglazybug 的帖子 特殊字符才需要转义
[ 是一个keyword,但]只是一个普通字符作者: yezhulin1982 时间: 2008-12-19 09:51 作者: biglazybug 时间: 2008-12-19 09:54 标题: 回复 #9 ly5066113 的帖子 晕 左右对称的待遇还不同啊 这咋区分呢 为什么是这样的 就得死记吗作者: Jenny.Palmy 时间: 2008-12-19 10:08
谢谢
如果我只想替换不是以"]"结尾的行呢,
例如:对文件
[ w '0 aa n ] [ t '0 ax] d
t [ ch '0 ae f ]
d [ jh '0 ah ] [ s t '0 ih] s
[ '0 ah v ]
[ dh '0 ] ax
只替换行1,3,5替换后的结果是
[ w '0 aa n ] [ t '0 ax # d
t [ ch '0 ae f ]
d [ jh '0 ah ] [ s t '0 ih # s
[ '0 ah v ]
[ dh '0 # ax作者: ly5066113 时间: 2008-12-19 10:13 标题: 回复 #12 Jenny.Palmy 的帖子 sed -r 's/]([^]]+)$/#\1/'作者: biglazybug 时间: 2008-12-19 10:17
sed -r '/]$/! s/(.*)]/\1#/' urfile作者: Jenny.Palmy 时间: 2008-12-19 10:27
谢谢 大虾们的帮忙,