Shell 学习5(grep命令)

Grep命令


grep是一种强大的文本搜索工具,(grep是文本搜索工具find是搜索文件的!! 区分开来)

它能使用正则表达式搜索文本,并把匹配的行打印出来,grep也是Linux中最广泛使用的命令之一


grep [选项][模式][文件…]

模式可以是字符串,也可以是变量,还可以是正则表达式。需要说明的是,无论模式是何种形式,只要模式中包含空格,就需要使用双引号将模式括起来,举例:
 [root@zawu globus]# grep certificate 00.pem
[root@zawu globus]# grep user certificate 00.pem
[root@zawu globus]# grep "user certificate" 00.pem
文件可以有多个,亦可以用通配来表示

eg

查找java文件中的String关键字
grep String Plant.java

eg    grep String url Plant.java 


grep 练习:

1  

-c 选项的用法  :  统计出现的行
     eg   grep -c import *.java
结果:
DBUtils.java:3
Plant.java:0


 2 
-n 的用法  : 表明出现在第几行
eg   grep -n import *.java
结果:
DBUtils.java:3:import java.sql.DriverManager;
DBUtils.java:4:import java.sql.SQLException;
DBUtils.java:6:import com.mysql.jdbc.Connection;


3
 -r 选项  : 递归执行 !! 
对当前目录及其所有的目录进行 grep
grep -r -c import *
结果:bean/Plant.java:0
dao/PlantDao.java:10
servlet/QueryServlet.java:8
utils/Plant.java:0
utils/DBUtils.java:3

4 
-w 选项  『
对于一条简单的grep指令 
eg
grep Str* file1 的含义是: 在file1中grep 以Str开头的字符串
其中,Str*代表的是 正则表达式
而当我们需要查找Str*这样的字符串的时候,就需要-w
-w可以转义

eg grep -w import* file1  在file1中查找import*这样的关键字 而不是以import开头的!!


』
grep 与正则结合使用:

1 
grep ^i PlantDao.java 
在PlantDao.java中查找以i开头的行
结果:
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import cn.sdu.bean.Plant;
import cn.sdu.utils.DBUtils;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.ResultSet;

2
grep -c ^$ file1
统计file1中的空白行   ^$ 表示空白
grep -c ^[^$] file1 
统计file1中的非空白行  

3
grep java\.util PlantDao.java 
匹配java.util 的行
而若不加\ 则.表示 任意字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值