grep命令使用

1. grep是UNIX和LINUX中使用最广泛的命令之一。 grep(全局正则表达式版本)允许
对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。 grep支持基本正则表达式,也支持其扩展集。 grep有三种变形,即:
Grep:标准grep命令,本章大部分篇幅集中讨论此格式。
Egrep:扩展grep,支持基本及扩展的正则表达式,但不支持\q模式范围的应用,与之相对应的一些更加规范的模式,这里也不予讨论。
Fgrep:快速grep。允许查找字符串而不是一个模式。不要误解单词fast,实际上它与grep速度相当。

2.介绍书上的一个示例:
首先建立一个文件data.txt
第1列:城市位置编号。
第2列:月份。
第3列:存储代码及出库年份。
第4列:产品代号。
第5列:产品统一标价。
第6列:标识号。
第7列:合格数量。
文件内容:
48    Dec    3BC1997    LPSX    68.00    LVX2A    138
483    Sept    3AP1996    USP    65.00    LVX2C    189
47    Otc    3ZL1998    LPSX    43.00    KVM9D    512
219    Dec    3CC1999    CAD    23.00    PVX2A    68
484    Nov    3PL1996    CAD    49.00    PVX2A    234
483    May    3PA1998    USP    37.00    KVM9D    644
216    Sept    3ZL1998    USP    86.00    KVM9E    234


3.  grep的一般格式为:
grep [选项]基本正则表达式 [文件]
这里基本正则表达式可为字符串。

grep的选项:
常用的grep选项有:
-c 只输出匹配行的计数。
-i 不区分大小写(只适用于单字符)。
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信息。
-v 显示不包含匹配文本的所有行。

举例:
grep -c "48" data.txt   
查找有数据48的数据 显示行数

grep -n "48" data.txt
显示有数据48的行 以及行号

grep "48\>" data.txt
精确的抽取48  这中方式更有效

查找不包括48的行
grep -v "48" data.txt

查找sep月份的
grep -i "sep" data.txt #此时大小斜不敏感

查找383,384的有关信息
grep '48[34]' data.txt

查找非48数字的相关信息
grep '^[^48]' data.txt


抽取以L开头,D结尾的所有代码
grep 'K...D' data.txt

查询日期
grep '5..199[6,8]' data.txt

4这个数字出现两次
grep '4\{2,\}' data.txt

219或者216出现的
grep -E '216|219' data.txt

查询空行
grep '^$' data.txt

查询特殊字符
grep '\.' data.txt

查询ip地址
grep '[0-9]\{3\}[0-9]\{3\}[0-9]\{3\}'




4.等价正则表达式
表示        等价正则表达式
[[:upper:]]    [A-Z]
[[:lower:]]    [a-z]
[[:digit:]]    [0-9]
[[:alnum:]]    [0-9a-zA-Z]
[[:space:]]    空格或tab键
[[:alpha:]]    [a-zA-Z]


举例:

查找3然后两个字母的
grep '3[[:upper:]][[:upper:]]' data.txt

查找以PD结尾的
grep '[[:upper:]][[:upper:]][P,D]' data.txt


5.系统grep命令
ls -l | grep '^d'  只查找文件

ps -ax | grep 'named'

对字符串使用grep
string="Hello This is a test from jack"
echo $string | grep 'jack'
这时jack会显示红色字体

参考书籍: shell编程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值