shell脚本总结15:grep命令的使用方法


grep 是一种在 shell 脚本中非常常用的命令行工具,用于搜索文件中的文本。它通过正则表达式来匹配并显示符合条件的文本行。以下是 grep 的一些基本用法及常用选项:

基本用法

grep [options] pattern [file...]

pattern: 要搜索的字符串或正则表达式。
file: 要搜索的文件。如果不指定文件,grep 会从标准输入读取数据。

常用选项
-i: 忽略大小写

grep -i "Sales" data.csv
#结果如下:
101,John,28,Sales,4500
103,mary,25,Sales,6800

-v: 反向匹配,即显示未匹配到的行。

grep -v "Sales" data.csv
#结果如下:
id,name,age,department,salary
102,Alice,32,Engineering,8000

grep 和awk综合

grep -i "Sales" data.csv | awk -F ',' '{print $1 "," $5}'
#结果如下:
101,4500
103,6800

grep -i "Sales" data.csv | awk -F ',' 'BEGIN {sum=0; count=0} {sum+=$3; count++} END {print "Avg:", sum/count}' 
#结果如下:
Avg: 26.5

-n: 显示匹配到的行的行号。

grep -n "Sales" data.csv
#结果如下:
2:101,John,28,Sales,4500
4:103,mary,25,Sales,6800

-c: 只显示匹配行的数量。

grep -c "Sales" data.csv
#结果如下 
2

-e: 使用多个搜索模式。

grep -e "Sales" data.csv | grep -e "mary" data.csv
#结果如下:
103,mary,25,Sales,6800

grep -e "Sales\|mary" data.csv
#结果如下:
101,John,28,Sales,4500
103,mary,25,Sales,6800

实战

去重空行

grep '^$' test.csv -v
#结果如下:

#填入一下内容
I am good 
I like watching the World Cup
我是神,你不能
hello world
hi,sarry 
智商250
#这是注释行

匹配开头是hello的

grep '^hello' test.csv
#结果如下:
hello world

找出未注释行,并过滤空行

grep "^#" test.csv -v | grep "^$" -v
#结果如下:
I am good 
I like watching the World Cup
我是神,你不能
hello world
hi,sarry 
智商250

输出以h开头的行,不区分大小写

grep -i  "^h" test.csv
#结果如下:
hello world
hi,sarry 

输出含数字的
grep “[0-9]” test.csv

#结果如下:
智商250
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值