Linux 查找文件内容 grep

grep命令:根据正则表达式查找文件内容,并且显示匹配内容的


1 语法

grep [选项] 模式 文件

根据模式指定的正则表达式进行查找。


2 常用选项

选项 作用
-n 显示行号
-i 不区分大小写
-A x 同时显示匹配行的后x行,会有颜色区分
-B x 同时显示匹配行的前x行,会有颜色区分
-C x 同时显示匹配行的前x行与后x行,会有颜色区分

3 正则表达式简单说明

正则表达式 作用
^ 表示开头
$ 表示结尾
.* 表示任意多个任意字符

4 示例

准备数据

rm -rf /test1.txt
for i in {1..15};do  echo "xiaobuteach$i" >> /test1.txt; done

img


例1:查找xiaobuteach1开头的行

grep -n "^xiaobuteach1" /test1.txt

正则表达式中,^表示开头。

img


例2:查找2结尾的行

grep -n "2$" /test1.txt

正则表达式中,$表示开头。

img


例3:查找xiao开头,2结尾的行

grep -n "^xiao.*2$" /test1.txt

.*表示任意多个任意字符,包括无字符。其中.表示任意字符,*表示任意个数。

img


例4:查找空行

准备数据

echo -e "a\nb\n\n\nc\n" > /test1.txt

img


查找空行

grep -n "^$" /test1.txt

^$连写,表示空行。

img


例5:查找xiao开头,2结尾的行,并显示其前后两行。

grep -n -C 2 "^xiao.*2$" /test1.txt

img

查询结果标记说明

行号后字符

匹配行的数据与行号之间是冒号,额外行是横杠;


颜色

匹配行的数据是橙色,额外行是白色。