学习内容太多,简要总结一下重要的吧。正则表达式
grep:文本过滤(模式:pattern)工具。主要做用与文本搜素,更具用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行。模式:由正在表达式字符及文本符所编写的过滤条件。 ide
grep -m # 匹配#次后中止
grep -v 显示不配pattern匹配到的行
grep -n 显示匹配的行号
grep -c 统计匹配的行数
grep -o 仅显示匹配到的字符串
grep -e 实现多个选项间的逻辑or关系
grep -e 'cat' -e 'dog' file 工具
grep -e 匹配整个单词 学习
*匹配前面的字符任意次 贪婪模式:尽量长的匹配 .* 任意长度的字符 \? 匹配其前面的字符0或1次 \+ 匹配其前面的字符最少1次 \{n} 匹配前面的字符n次 \{n,m\} 匹配前面的字符n-m次 \{n,\} 匹配前面的字符最少n次 \{,m\} 匹配前面的字符最多m次
^ 行首锚定,用于模式的最左侧 $ 行尾锚定,用于模式的最右侧 ^PATTERN$ 用于模式匹配整行 ^$ 空行 ^[[:space:]]*$ 空白行 \< 或 \b 词首锚定,用于单词模式的左侧 \> 或 \b 词尾锚定,用于单词模式的右侧 \<PATTERN\> 匹配整个单词
分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些 变量的命名方式为: \1, \2, \3, ... \1表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符 示例: \(string1\+\(string2\)*\) \1 :string1\+\(string2\)* \2 :string2 后向引用:引用前面的分组括号中的模式所匹配字符,而非模式自己 或者:\| 示例:a\|b: a或b C\|cat: C或cat \(C\|c\)at:Cat或cat