LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
123
返回列表 发新帖
楼主: zhy2111314

***sed新手使用进阶全功略!***

[复制链接]
发表于 2011-9-3 15:37:00 | 显示全部楼层
很好的帖子啊!收藏了~
回复 支持 反对

使用道具 举报

发表于 2011-9-13 17:43:58 | 显示全部楼层
我看到这里有点疑问,可能有点问题, 所以提一下:
  1. ?: 表示前一個 char. set 的出現次數為 0 或 1 次. 如 ab?c 表示 a 與 c 之間可有 0 或 1 個 b 存在.
  2. +: 表示前一個 char. set 的出現次數為 1 或多次. 如 ab+c 表示 a 與 c 之間可有 1 或多個 b 存在.
  3. {n}: 表示前一個 char. set 的出現次數必須為 n 次. 如 ab{3,}c 表示 a 與 c 之間必須有 3 個 b 存在.{n,}: 表示前一個 char. set 的出現次數至少為 n 次. 如 ab{3,}c 表示 a 與 c 之間至少有 3 個 b 存在.
  4. {n,m}: 表示前一個 char. set 的出現次數為 n 到 m 次. 如 ab{3,5}c 表示 a 與 c 之間有 3 到 5 個 b 存在.
复制代码


? + {n} 这个几个都是ERE(Extended Regular Expression)中的内容, 貌似sed只支持BRE(Basic Regular Expression),所以这几个是没有用的, 同样的情况也出现在vim中。
回复 支持 反对

使用道具 举报

发表于 2011-12-20 00:15:24 | 显示全部楼层
这样好的帖子无论放多久都有价,我很喜欢这个帖子
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-1-11 16:47:27 | 显示全部楼层
Post by 紫衣伯爵;2151772
我看到这里有点疑问,可能有点问题, 所以提一下:
  1. ?: 表示前一個 char. set 的出現次數為 0 或 1 次. 如 ab?c 表示 a 與 c 之間可有 0 或 1 個 b 存在.
  2. +: 表示前一個 char. set 的出現次數為 1 或多次. 如 ab+c 表示 a 與 c 之間可有 1 或多個 b 存在.
  3. {n}: 表示前一個 char. set 的出現次數必須為 n 次. 如 ab{3,}c 表示 a 與 c 之間必須有 3 個 b 存在.{n,}: 表示前一個 char. set 的出現次數至少為 n 次. 如 ab{3,}c 表示 a 與 c 之間至少有 3 個 b 存在.
  4. {n,m}: 表示前一個 char. set 的出現次數為 n 到 m 次. 如 ab{3,5}c 表示 a 與 c 之間有 3 到 5 個 b 存在.
复制代码


? + {n} 这个几个都是ERE(Extended Regular Expression)中的内容, 貌似sed只支持BRE(Basic Regular Expression),所以这几个是没有用的, 同样的情况也出现在vim中。

正则表达式简单表述可以看看http://en.wikipedia.org/wiki/Reg ... 的可以看书。
关于每个命令支持的正则表达式形式可以直接看man手册。
回复 支持 反对

使用道具 举报

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

本版积分规则

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