shell四剑客之grep

本文详细介绍了grep命令的基本格式及各种参数的使用方法,包括颜色显示、反向选择、行号显示等,并通过具体示例展示了如何利用grep进行高效文本搜索。

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

grep的基本格式
grep -[参数] ‘word’ filename

演示案例
head -n 10 /etc/passwd > grep.txt
grep --color 'root' grep.txt    在匹配的内容里,root字样会显示颜色

-v 反向选择

grep -v 'mail' grep.txt 不显示包含mail的行

-n 显示行号

grep -n 'uucp' grep.txt 显示匹配uucp的行号

-c 显示匹配的行数

grep -c 'sbin' grep.txt

-i 不区分大小写

echo "MAIL" >> grep.txt
grep -i 'mail' grep.txt     大写小写的mail都会匹配

-w 精确匹配

grep -w 'bin' grep.txt  此时包含sbin的行不会被查找
grep '\<bin\>' grep.txt 格式\< \>与-w效果一样
grep --color -n -w 'bin' grep.txt

-l和-L -l是一次搜索多个文件,找出指定字符的文件,-L反向选择

[root@localhost four]# grep -l 'bin' *.txt  包含bin的文件名
grep.txt
sed.txt
[root@localhost four]# ls
awk.txt  grep.txt  sedcommand  sed.txt
[root@localhost four]# grep -L 'bin' *.txt  不包含bin的文件名
awk.txt

grep的正则表达
基本正则表达式(BRE):*,^,$,.,[,]
扩展正则表达式(ERE):?,+,|,(,),{,}

grep 'spo*l' grep.txt   *表0个或者是多个o,也就是匹配*前面的字符
grep '^sync' grep.txt   查找以sync为首的行
grep 'bash$' grep.txt  查找末尾为bash的行
grep 'b.n' grep.txt 符号.代表任意一个字符
grep 'ba[shd]h' grep.txt    匹配[]里的任意一个字符,包括bash/bahh/badh
grep --color -n '[^b]in' grep.txt   匹配in前面不是b的行,即使是包含了bin,比如某行里有bin,nologin,也会显示。
grep -n '^[a-z]' grep.txt   以小写字母开头的行
grep '^[^a-zA-Z]' grep.txt  不以字母开头的行,[]里面的^代表反向选择,在[]代表开头
grep -n '\*$' grep.txt 以*为末尾的行,需要转义
grep -E 'MAIL|shutdown' grep.txt    多条件查找,符号|代表或
grep -v '^$' grep.txt  不显示空格
grep -v '^$' grep.txt | grep -v '^#'   不显示空格和注释
grep '12.*56' grep.txt  .*表示匹配任何字符,包括空
grep 'spo\{2,\}' grep.txt   匹配2个或以上的o,{2,3}表示2-3个前面的字符,{2}代表刚好2个前面的字符
grep -E 'spo{2,}' grep.txt 与上面效果一样

-A after,除了显示匹配行,还会显示该行下面的内容

grep -A 1 'mail' grep.txt

-B before,除了显示匹配行,还会显示该行上面的内容

grep -B 1 'mail' grep.txt

-C -A和-B同时显示

grep -C 1 'mail' grep.txt
grep -n '[^[:lower:]]:root' grep.txt    非字母
grep -n '^[[:lower:]]' grep.txt 字母开头
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值