1、过滤文本的命令 grep
grep 命令是linux下的文本过滤工具,grep根据指定的字符串 对文件的每一行进行搜索,如果找到了字符串,就输出该行的内容。
格式:
grep [选项] 需要查找的字符串 文件名
选项:
-A NUM 除了列出符合条件的行外,同时列出每个符合条件行的后num行 -c 只显示符合条件的行数 而不显示每行的具体信息 -f file 事先将要搜索的样式写入到一个文件中 每行一个样式 然后以这个文件作为条件进行搜索 -i 搜索时忽略大小写 -n 在显示的搜索结果上显示行号 -B 与选项"-A"相反 除了列出符合条件的行外,同时列出每个符合条件行的前NUM行
举例1:列出2.txt文件中含有my字符串的行
[root@localhost tmp]# grep -ni zhao 2.txt 3:zhao tian hao
举例2:列出2.txt文件中含有my字符串的行,忽略大小写,并标识出每行的行号
[root@localhost tmp]# grep -ni my 2.txt 2:my names zhao` 3:my you i
2、正则表达式
c 匹配字母c
. 匹配任意单个字母
* 匹配前一个字符出现0次或多次
.* 匹配多个任意字符
[] 匹配集合中的任意单个字符 括号可以是任意数量字符的集合
[x-y] 匹配连续的字符串范围
^ 匹配字符串的开头
$ 匹配字符串的结尾
[^] 匹配否定,对括号中的集合取反
\ 匹配转义后的字符串
\{n,m\} 匹配前一个字符重复n到m次
\{n,\} 匹配前一个字符重复至少n次
\{n\} 匹配前一个字符重复n次
\(\) 将\(与\)之间的内容存储在"保留空间" 最多可存储9个
\n 通过\1至\9调用保留空间中的内容
3、扩展正则表达式
{n,m} 等同于基本正则表达式\{n,m\}
+ 匹配前的字符出现一次或多次
? 匹配前的字符出现0次或1次
| 匹配逻辑或 即匹配|前或后的字串
() 匹配正则集合 同时也有保留的意思,等同于基本正则表达式的\(\)