sed 是流编辑器,要解决这个问题要一些技巧,sed -n '/^"/{H;d};/^"/!{/<leader>/{H;x;p;s/.*//;x;d};/<leader>/!{s/.*//;x;d};};' vimrc 应该能够达到要求,sed 命令教程请见 http://www.grymoire.com/Unix/Sed.html,详细说明如下。
sed -n '
/^"/ {
# 匹配到注释行,附加到缓冲空间
H
# 删除模式空间,开始新一轮匹配
d
}
/^"/ !{
# 匹配到非注释行
/<leader>/ {
# 匹配到目标行,附加到缓冲空间
H
# 交换缓冲空间和模式空间
x
# 打印模式空间
p
# 清空缓冲空间
s/.*//
x
# 删除模式空间,开始新一轮匹配
d
}
/<leader>/ !{
# 非目标行,清除缓冲空间
s/.*//
x
# 删除模式空间,开始新一轮匹配
d
}
}' vimrc
sed 是流编辑器,要解决这个问题要一些技巧,
sed -n '/^"/{H;d};/^"/!{/<leader>/{H;x;p;s/.*//;x;d};/<leader>/!{s/.*//;x;d};};' vimrc
应该能够达到要求,sed 命令教程请见 http://www.grymoire.com/Unix/Sed.html,详细说明如下。这类问题可能还是用 awk 比较合适。
你是说这样吗?