linux grep命令
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配行打印出来
grep 全称 Grobal Regular Expression Print 表示全局正则表达式版本,它的使用权限是所有用户。
grep命令格式
grep [options]
主要的参数
-c 只输出匹配行的计数
-i 不区分大小写
-h 查询多文件时不显示文件名
-l 查询多文件只输出包含匹配字符的文件名
-n 显示匹配行以及行号
-s 不显示不存在或无匹配文本的错误信息
-v 显示不包含匹配文本的所有行
-E 使用扩展正则表达式
常用grep实例
多个文件查询
grep "sort" *.doc
行匹配:输出匹配行的计数
grep -c "48" data.doc 输出文档中含有48字符的行数
显示匹配行和行数
grep -n "48" data.doc 显示所有匹配48的行和行号
显示非匹配的行
grep -vn "48" data.doc 输出所有不包含48的行
大小写敏感
grep -i "ab" data.doc 输出所有含有ab或Ab的字符串的行
使用正则过滤
ssgao:~ aouo$ set | grep -e .*ython
PATH=/Library/Frameworks/Python.framework/Versions/2.7/bin
* 前一个字符匹配0次或任意多次
. 匹配除了换行符以外任意一个字符。
^ 匹配行首,例如^hello会匹配以hello开头的行
$ 匹配行尾,例如hello$会匹配以hello结尾的行
[] 匹配括号中的任意一个字符,只匹配一个字符
[0-9]匹配任意一位数字,[a-z][0-9]匹配小写字母和一位数字构成的两位字符
[^] 匹配括号以外的任意字符,[^0-9]匹配任意一位非数字字符
\ 转义符,用于取消将特殊符号的含义取消
\{n\} 表示前面的字符恰好出现n次
[0-9]\{4\}匹配4位数字
\{n,\} 表示前面的字符出现不小于n次,[0-9]\{2,\}表示两位及以上的数字
\{n,m\} 表示其前面的字符至少出现n次,最多出现m次,[a-z]\{6,8\}匹配6到8位小写字母