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 的行 而若不加\ 则.表示 任意字符