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” |
查询系统正在运行的所有进程 |