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]+'
posted @ 2026-01-28 15:01  Dswtao  阅读(2)  评论(0)    收藏  举报