grep允许对文本文件进行模式查找
一般形式:
grep [选项]基本正则表达式[文件]
grep | 选项 | 举例 |
| -c 只输出匹配行的技术 | grep –c “48”data.txt 返回 行数4 |
| -I 不区分大小写 | grep –i “sept”data.txt 字母大小写不敏感 |
| -h 查询多文件时不显示文件名 |
|
| -l 查询多文件时只输出包含匹配字符的文件名 |
|
| -n 显示匹配行和行号 | grep –n “48”data.txt 返回 行数和行内容 |
| -s 不显示不存在或者无匹配文本的错误信息 |
|
| -v 显示不含匹配文字的所有行 | grep –v “48”data.txt 返回 非匹配行 |
|
| grep “48/>”data.txt 精确匹配48的行 |
grep 和正则表达式
grep | 正则表达式 | 举例 |
| [] 指定字符范围 | grep ‘48[34]’ data.txt 以3或4 结尾的字符串 |
| ‘^[^ ]’ 行首不是某个字符 | grep ‘^[^48]’ data.txt 表示行首不是以4或者8开头 |
| 设置大小写 | grep ‘[Ss]ept’ data.txt |
|
| grep ‘[Ss]ept’ data.txt | grep 383 管道命令 |
| 匹配任意字符 | grep ‘[K..D]’ data.txt |
| 模拟出现机率 | gerp ‘4/{2,/}’ data.txt |
| 与 或者 或 模式 | grep –E ‘216|219’ data.txt 匹配216或者是219 |
| 匹配空行’^$’ | grep ’^$’ data.txt |
| 匹配特殊字符 | grep ’/”’ data.txt |
grep 类名 国际字符匹配模式
类 | 正则表达式 | 举例 |
[[:upper:]] | [A-Z] | grep ‘5[[:upper:]] [[:upper:]]’ data.txt 5开头后两个大写字母 |
[[:lower:]] | [a-z] | grep ‘[[:upper:]] [[:upper:]][P,D]’ data.txt P或D结尾 |
[[:digit:]] | [0-9] |
|
[[:alnum:]] | [0-9z-zA-Z] |
|
[[:space:]] | 空格或者是tab |
|
[[:alpha:]] | [a-zA-Z] |
|
其他 举例
例 | 含义 |
$ls –l | grep ‘^d’ | 查询目录列表中的目录 |
$ls –l |grep ‘^[^d]’ | 查询不包含目录的所有文件 |
$ls –l |grep ‘^d…..X..X’ | 查询其他用户有可执行权限的目录集合 |
$grep “vivi” /etc/passwd | 查询passwd文件 |
$ps ax |grep “named” | 查询系统正在运行的所有进程 |