Linux-Grep命令详解

  • Post author:
  • Post category:linux




一、基础的grep命令



1.1 -A -B -C参数的使用


命令格式:grep -A m “关键字” xxxx(文件)



显示出关键字所在行以及关键字所在的以下m行内容


[root@localhost ~]# grep -A 10 “game” /etc/passwd #搜索出关键字“game” 并打印出关键字所在的行以及关键字以下10行

在这里插入图片描述


命令格式:grep -B m “关键字” xxxx(文件)



显示出关键字所在行以及关键字所在的以上m行内容

[root@localhost ~]# grep -B 6 “sync” /etc/passwd #搜索出关键字“sync”并打印出关键字所在行以及关键字以上6行

在这里插入图片描述

只显示了之上5行说明再其上只有5行了;


命令格式:grep -C m “关键字” xxxx(文件)



显示出关键字所在行以及关键字所在的上下m行内容


[root@localhost ~]# grep -C 6 “sync” /etc/passwd #搜索出关键字“sync”并打印出关键字所在行以及关键字的上下6行

在这里插入图片描述

[root@localhost ~]# grep “xiaohua”

/etc/passwd /etc/shadow /etc/group /etc/gshadow


在多个文件上查找关键字

在这里插入图片描述



1.2 -l 参数的使用


命令格式:grep -l “关键字” xxxx(文件)



只显示包含关键字的文件名


在这里插入图片描述

在一堆文件中寻找;不能在目录中寻找;



1.3 -n 参数的使用


命令格式:grep -n “关键字” xxxx(文件)



显示出关键字所处文件中的行号

[root@localhost ~]# grep -n “xiaohua” /etc/passwd /etc/shadow /etc/group /etc/gshadow

在这里插入图片描述

[root@localhost ~]# grep "xiaowang" /etc/passwd | sed 's/xiaogang/xiaowang/g' #查找出文件的关键字的信息并作出相应的替换 
xiaowang : x:503:503::/home/xiaowang:/bin/bash  
 's/xiaogang/xiaowang/g' #Linux正则表达式  s表示行数例如10s,100s,单独一个s说明说有的行;  用xiaogang去替换xiaowang   g 表示结束
[root@localhost ~]# ls />1.txt && cat 1.txt |grep "etc"  #采用grep组合命令查找是否有etc的目录 
ls /  (查看”/“目录下的文件)  >1.txt(重定向到1.txt) &&(并且) cat 1.txt(查看1.txt) |(管道符)grep "etc"(查找etc)



1.4 awk命令与grep命令组合

awk命令主要用来查找文件的列,具体请看Linux-awk命令详解

[root@localhost ~]# awk -F : ‘{print $1}’ /etc/passwd #查找/etc/passwd 中以:为分隔的第一列;

在这里插入图片描述

[root@localhost ~]# df -h | awk ‘{print $1 ” ” $2}’ #df -h 查看磁盘使用情况 并输出第一列和第二列

在这里插入图片描述

[root@localhost ~]# ifconfig | grep Bcast | awk ‘{print $2}’|awk -F : ‘{print $2}’ #查看ip 地址信息

在这里插入图片描述



1.5 -v 参数的使用


命令格式:grep -v “关键字” xxxx (文件)



过滤掉文件中含有关键字的行


[root@localhost ~]# grep -v “nologin” /etc/passwd >grep-v.txt && cat grep-v.txt #过滤掉”nilogin“

在这里插入图片描述

[root@localhost ~]# grep -v “nologin” /etc/passwd |sed ‘s/x/xxx/g’ >grep-v.txt && cat grep-v.txt #把x替换成xxx

在这里插入图片描述



1.6 ^参数的使用


命令格式: grep “^关键字” xxxx(文件名)


== 找出并显示以关键字开头的文件信息==

[root@localhost ~]# grep “^user” /etc/passwd #输出文件信息中以’‘user’’开头的内容

在这里插入图片描述



1.7 $ 参数的使用

==命令格式:grep “关键字

KaTeX parse error: Expected ‘EOF’, got ‘#’ at position 54: …ot@localhost ~]#̲ grep “nologin

” /etc/passwd #输出文档信息中以nologin结尾的内容

在这里插入图片描述



1.8 ^$参数的使用


命令格式: grep -v “^$” xxxx(文件名)



输出文件信息时过滤掉空行


在这里插入图片描述



1.9 -r 参数的使用


命令格式: grep -r -n “关键字” xxxx(文件名)


==递归查询只要包含关键字的信息都能被查询出 ==

1597374551301.png



1.10 -i参数的使用


命令格式: grep -i “关键字” xxxx(文件)



在查看文件时,可以忽略关键字是否大写


在这里插入图片描述



1.11 -e参数的使用


命令格式: grep -e “关键字” xxxx(文件)



在查看文件时,可以多个关键字共同进行查找


在这里插入图片描述

可以与-v同时使用;用来过滤掉更多关键字;



1.12 -f参数的使用


命令格式: grep -f xxxx(文件1) xxxx(文件2)



在查找时,以文件1中的内容为指定关键字进行查找


在这里插入图片描述



1.13 -c 参数的使用


命令格式: grep -c “关键字” xxxx(文件)



查找出包含关键字的信息后显示的是含有关键字的行数


在这里插入图片描述



二、grep 命令结合正则表达式进行综合使用



2.1 “.”参数的使用

. :效果匹配一个任意的非换行符字符

在这里插入图片描述



2.2 ” * “参数的使用

” * “ :效果匹配0个或多个信息

例如a* :表示含有0个a或多个a

aa* :表示含有一个a或多个a

在这里插入图片描述



2.3 [] 参数的使用

#: 匹配一个指定范围内的字符

在这里插入图片描述

a-z :所有小写字母
0-9:所有数字
^[A-Z]:所有大写字母开头
a-zA-Z:所有字母
[^abc]:匹配不包含^后的任意字符,是对[abc]的取反



2.4 grep 命令结合脚本修改配置文件

在这里插入图片描述

0-9:所有数字

^ [ A-Z]:所有大写字母开头

a-zA-Z:所有字母

[ ^ abc]:匹配不包含^后的任意字符,是对[abc]的取反



版权声明:本文为qq_45551589原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。