考点精讲
记忆技巧
「点任意、星重复、尖号行首尾、方括号字符类」。
「^ 开头 $ 结尾」——尖号在上表示行首,美元在下表示行尾。
「+ ? | 要 -E」,扩展正则用 grep -E(或 egrep)。
「^ 开头 $ 结尾」——尖号在上表示行首,美元在下表示行尾。
「+ ? | 要 -E」,扩展正则用 grep -E(或 egrep)。
常见误区
- 误区:混淆基本正则与扩展正则。正解:+ ? | 需用 grep -E 才生效,普通 grep 不识别。
- 误区:以为 * 表示任意字符。正解:* 表示前一项重复零次或多次,与 Shell 通配符含义不同。
- 误区:把 grep 的 . 当成字面点。正解:. 匹配任意单字符,要匹配字面点需转义 \.。
真题思路
- 【示例】 用 grep 匹配「以 abc 开头」的行,正确的正则写法是?
A. grep 'abc$' file B. grep '^abc' file C. grep 'abc*' file D. grep 'abc.' file
答案:B
解析:^ 匹配行首,^abc 表示以 abc 开头;$ 匹配行尾;* 表示前一项重复;. 匹配任意单字符。
常见问题
Q:怎么匹配以某个词开头的行
A:grep '^词' 文件。
Q:怎么忽略大小写搜索
A:grep -i '模式' 文件。
Q:扩展正则用哪个命令
A:grep -E 或 egrep。
相关知识
教材出处:RH134 第2章 正则表达式与文本匹配