grep全称是(Global Regular Expression Print)是一种强大的文本搜索工具,根据用户指定模式逐行搜索
主要选项如下:
-i:忽略大小写
-E:支持扩展正则表达式
-n:显示匹配行及 行号
-An:显示匹配行和以下n行
-Bn:显示匹配行和以上n行
-Cn:显示前后各n行
-
文件通配符 符号 备注 举例 说明 * 任意长度的任意字符 ls -d /etc/* 查看etc下所有文件和目录 ? 任意单个字符 ls -d /etc/p?i 查看etc下p开头i结尾中间包含任意单个字符的文件和目录 [] 指定范围类的单个字符 ls -d /etc/p[pk]p 查看etc下p开头p结尾中间只包含p或k的文件和目录 [^] 指定范围外的单个字符 ls -d /etc/p[^a-z]p 查看etc下p开头p结尾中间不包含字母的文件和目录 [:space:] 空白字符 grep "^#[[:space:]]*$" /etc/inittab 查找出以#开头中间包含任意空白符的行, [:punct:] 标点符号 [:lower:] 小写字母 [:upper:] 大写字母 [:digit:] 数字 [:alnum:] 所有字母和数字 [:alpha:] 所有字母 正则表达式 . 任意单个字符 [] 指定范围内的任意单个字符 [^] 指定范围外的单个字符 * 前一字符出现的任意长 ? 前一字符出现的0次或1次 \{m\} 前一字符出现最少m数 \{m,\} 前一字符出现最少m数,到多次 \{m,n\} 前一字符出现最少m次,最多n次 .* 任意长度任意字符 ^ 行首锚定 $ 行尾锚定 ^$或者^[[:space:]]$ 表示空白行 \< 词首锚定 \> 词尾锚定 \(\) 分组符号 grep "\(by\) " /etc/inittab \n 引用第n个分组括号内容。 扩展正则表达式 ?{}() 无需转义,词首词尾还需转义 + 表示前一字符至少出现一次 | 或