grep和sed命令正则表达式的使用 #
详见文章: ../../../linux/man/BRE-and-ERE.md
BRE and ERE #
- BRE: 基本正则表达式,元字符:
^ $ . [ ] *
- ERE: 扩展正则表达式,元字符:
^ $ . [ ] * ( ) { } ? + |
(){}
等字符用反斜杠转义后,在 BRE 中被看作元字符,在 ERE 中被看作普通字符。
如何使用 #
bash
# grep 默认使用 BRE,添加 -E 参数后使用 ERE
grep -E ...
# sed 默认使用 BRE,添加 -r or -E 参数后使用 ERE
sed -r
Examples:
bash
# abcdef ==> ABcdEF
echo 'abcdef' | sed 's/ab\(cd\)ef/AB\1EF/'
echo 'abcdef' | sed -r 's/ab(cd)ef/AB\1EF/'