一、基础的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(文件名)
==递归查询只要包含关键字的信息都能被查询出 ==
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]的取反