linux命令之grep命令

本文深入讲解了Grep命令的各种用法,包括基本的字符串检索、目录检索、行号检索、内容过滤、正则表达式匹配等高级功能。通过实例演示了如何在Linux环境下使用Grep进行高效的数据搜索和处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

grep 在文本中检索字符串(单个文本和多个文本

grep

wxc@wxc-Lenovo-G40-30:/$ grep zcv /home/wxc/linuxEdit
zcvveve
rfrgvzcv
wxc@wxc-Lenovo-G40-30:/$ grep zcv /home/wxc/linuxEdit /home/wxc/22
/home/wxc/linuxEdit:zcvveve
/home/wxc/linuxEdit:rfrgvzcv
/home/wxc/22:zcvwferregtr
/home/wxc/22:zcvwgreg4h
/home/wxc/22:frgrgzcv

 

grep通过文本中的字符串检索正确的目录

grep -l ***

wxc@wxc-Lenovo-G40-30:/$ grep -l zcv /home/wxc/linuxEdit /home/wxc/22 /home/wxc/GitSSH/123
/home/wxc/linuxEdit
/home/wxc/22
/home/wxc/GitSSH/123
wxc@wxc-Lenovo-G40-30:/$ grep -l zcv /home/wxc/linuxEdit /home/wxc/22 /home/wxc/GitSSH/123 /home/wxc/learngit/123
/home/wxc/linuxEdit
/home/wxc/22
/home/wxc/GitSSH/123

grep查找指定文档下所在行号和内容

grep -n

wxc@wxc-Lenovo-G40-30:/$ grep -n zcv /home/wxc/linuxEdit /home/wxc/22 /home/wxc/GitSSH/123 /home/wxc/learngit/123
/home/wxc/linuxEdit:6:zcvveve
/home/wxc/linuxEdit:7:rfrgvzcv
/home/wxc/22:1:zcvwferregtr
/home/wxc/22:2:zcvwgreg4h
/home/wxc/22:5:frgrgzcv
/home/wxc/GitSSH/123:1:zcv法人股高投入噶
/home/wxc/GitSSH/123:3:vergrevegezcv
/home/wxc/GitSSH/123:4:fregr4gt4zcv

grep -v 

wxc@wxc-Lenovo-G40-30:/$ grep -v zcv /home/wxc/linuxEdit /home/wxc/22 /home/wxc/GitSSH/123
/home/wxc/linuxEdit:ofwofwfnalsknasaa
/home/wxc/linuxEdit:dasfewfreger
/home/wxc/linuxEdit:safewgrg
/home/wxc/linuxEdit:asddfdsgfg
/home/wxc/linuxEdit:asdfrve
/home/wxc/22:sdfdfref
/home/wxc/22:frrg
/home/wxc/22:
/home/wxc/GitSSH/123:
/home/wxc/GitSSH/123:

grep  ^z 匹配所在文件行以z开头的行内容

wxc@wxc-Lenovo-G40-30:/$ grep ^z /home/wxc/linuxEdit /home/wxc/22 /home/wxc/GitSSH/123
/home/wxc/linuxEdit:zcvveve
/home/wxc/22:zcvwferregtr
/home/wxc/22:zcvwgreg4h
/home/wxc/GitSSH/123:zcv法人股高投入噶

 

grep v$  表示指定文件中包含以v结尾的行

wxc@wxc-Lenovo-G40-30:/$ grep v$ /home/wxc/22
frgrgzcv

grep -r递归查找包含zcv的行

wxc@wxc-Lenovo-G40-30:/$ grep -r zcv /home/wxc/linuxEdit /home/wxc/22 /home/wxc/GitSSH/123
/home/wxc/linuxEdit:zcvveve
/home/wxc/linuxEdit:rfrgvzcv
/home/wxc/22:zcvwferregtr
/home/wxc/22:zcvwgreg4h
/home/wxc/22:frgrgzcv
/home/wxc/GitSSH/123:zcv法人股高投入噶
/home/wxc/GitSSH/123:vergrevegezcv
/home/wxc/GitSSH/123:fregr4gt4zcv

grep -c 显示有多少行能够匹配

wxc@wxc-Lenovo-G40-30:~$ grep -c zcv /home/wxc/linuxEdit
2
wxc@wxc-Lenovo-G40-30:~$ grep -r zcv /home/wxc/GitSSH
/home/wxc/GitSSH/123:zcv法人股高投入噶
/home/wxc/GitSSH/123:vergrevegezcv
/home/wxc/GitSSH/123:fregr4gt4zcv
wxc@wxc-Lenovo-G40-30:~$ 

grep ^$  p匹配文件中的空行  有就输出 没有则什么都不输出

wxc@wxc-Lenovo-G40-30:~$ grep ^$ /home/wxc/linuxEdit
wxc@wxc-Lenovo-G40-30:~$ grep ^$ /home/wxc/22











wxc@wxc-Lenovo-G40-30:~$ 

grep -i  忽略大小写匹配 

wxc@wxc-Lenovo-G40-30:~$ grep -i ZCV /home/wxc/linuxEdit
safewgrgzCv
asdfrveZcv
zcvveve
rfrgvzcv

grep  -e    -e查找多个参数

wxc@wxc-Lenovo-G40-30:~$ grep -e "zcv" -e "a" /home/wxc/linuxEdit
ofwofwfnalsknasaa
dasfewfreger
safewgrgzCv
asddfdsgfg
asdfrveZcv
zcvveve
rfrgvzcv

grep使用正则表达式

wxc@wxc-Lenovo-G40-30:~$ grep '[a-z]\{9\}' /home/wxc/linuxEdit
ofwofwfnalsknasaa
dasfewfreger
safewgrgzCv
asddfdsgfg
wxc@wxc-Lenovo-G40-30:~$ grep 'ZZ*' /home/wxc/linuxEdit
asdfrveZcv
wxc@wxc-Lenovo-G40-30:~$ grep '\<asd' /home/wxc/linuxEdit
asddfdsgfg
asdfrveZcv

grep使用管道

grep统计指定文件中包含某字符串的行数  字数  字节数

wxc@wxc-Lenovo-G40-30:~$ grep 'zcv' /home/wxc/linuxEdit |wc
      2       2      17

grep在当前进程中查找vi进程信息

wxc@wxc-Lenovo-G40-30:~$ ps aux |grep vi
root       722  0.0  0.1 277880  8512 ?        Ssl  09:22   0:01 /usr/lib/accountsservice/accounts-daemon
wxc       1552  0.0  0.6 701244 51604 ?        Ssl  09:23   0:13 /usr/lib/x86_64-linux-gnu/hud/hud-service
wxc       1578  0.1  0.6 761188 52580 ?        Ssl  09:23   0:49 /usr/lib/x86_64-linux-gnu/unity/unity-panel-service
wxc       1627  0.0  0.0 178664  4724 ?        Sl   09:23   0:01 /usr/lib/dconf/dconf-service
wxc       1663  0.0  2.0 1601964 165220 ?      SLl  09:24   0:16 /usr/bin/gnome-software --gapplication-service
wxc       1666  0.0  0.1 403148 12868 ?        Sl   09:24   0:08 /usr/lib/x86_64-linux-gnu/indicator-application/indicator-application-service
wxc       1775  0.0  0.0 420256  6612 ?        Ssl  09:24   0:00 /usr/lib/x86_64-linux-gnu/indicator-messages/indicator-messages-service
wxc       1776  0.0  0.0 409100  7988 ?        Ssl  09:24   0:00 /usr/lib/x86_64-linux-gnu/indicator-bluetooth/indicator-bluetooth-service

grep可作为shell脚本,判断搜索的状态是否成功   无指定目录为2,搜索不成功返回0,搜索成功返回1

wxc@wxc-Lenovo-G40-30:~$ grep 'assd' /home/wxc/linuxEdit
wxc@wxc-Lenovo-G40-30:~$ echo $?
1
wxc@wxc-Lenovo-G40-30:~$ grep 'zcv' /home/wxc/linuxEdit
zcvveve
rfrgvzcv
wxc@wxc-Lenovo-G40-30:~$ echo $?
0
wxc@wxc-Lenovo-G40-30:~$ grep 'assd' /home/wxc/qwe
grep: /home/wxc/qwe: 没有那个文件或目录
wxc@wxc-Lenovo-G40-30:~$ echo $?
2

egrep:执行效率高,占内存大

fgrep:占用空间比egrep大,速度比grep快,处理不了正则

wxc@wxc-Lenovo-G40-30:~$ egrep 'a+' /home/wxc/linuxEdit
ofwofwfnalsknasaa
dasfewfreger
safewgrgzCv
asddfdsgfg
asdfrveZcv

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值