grep命令使用
grep使用方式
grep [参数] 文件
参数说明
grep 参数
-E 扩展正则
-o 只显示结果
-w 匹配单词(单词表示出现了分割符如,hello,i am super mam.)
-v 取反
-i 忽略大小写
-n 显示行号
-A number grep -A 10 '2521' 查找关键字后的10行内容
grep操作实例
1 找出以I开头且结尾不是 . 的行 注意[] 的使用
grep -n '^I.*[^.]$' file.txt
2 扩展正则操作 查找手机号
grep -E '[0-9]{11}' file.txt
查找粗活所有单词中字母连续的行
* []找出括号内任意一个字符,()将找出的字符作为一个整体进行调用,\1就是将第一个()内的字符调用,{1,}重复前一个字符一次或多次
grep -Eo '([a-z])\1' file.txt
结果 tt
grep -Eo '([a-z])\1+' file.txt ( + 重复建一个字符一次或多次)使用()进行分组
grep -E '([a-z])\1{1,}' file.txt
3 找出同一个字符连续3次的行
*找连续的重复的字符需要()进行分组和 \1调用集合{}重复次数
grep -E '([a-z])\1{2}' file.txt -o
*如果没有()查找出的都[]设置的字母,不仅有重复也有不重复只是结果在数量上一样
grep -Eo '[a-zA-Z]{2}'
如提取网址 grep -Eo '([a-z])\1{2}.*com' file.txt
4 查看sda磁盘使用率(没有重复字符查找只查找数值[] 与 +结合使用
df -h | grep sda | grep -E '[0-9]+%' -o
#df -h | grep '/$' | grep -E '[0-9]+%' -o
5 提取ip地址 提取数值 一般ip数值位数 1~3 所以{1,3}
ifconfig | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
6 提取禁止登录的用户只显示用户名 当字符既有字母大写小写又有数字那么采用[] 将字母和数字写入 统计次数一般为一个或多个 使用 +
cat /etc/passwd | grep 'nologin' | grep -Eo '^[a-Z0-9]+'
浙公网安备 33010602011771号