Linux 专栏 020 常用命令之 grep

Linux 入门与进阶闪动元素2023-5-14 12:31

grep 查找文件中符合条件的字符串,与 sed、awk 组成 Linux 的三剑客,语法格式:grep [选项] 关键字 文件名

在学习之前,我们先了解关键字加引号(单引号,双引号),不加引号的区别

关键字加引号,关键字会被看成一个整体,可以包含空格或特殊字符

1)单引号

如果关键字包含特殊字符($ 和 \' 除外),使用单引号会对特殊字符转义,进行完全匹配搜索

2)双引号

关键字即使包含特殊符号,使用双引号原样输出

3)不加引号

 搜索包含关键字中任意单词的文本行

1、打印包含关键字的行

我们找出文件中包含 root 关键字的行,并打印出来

grep "root" test.txt

2、打印以某关键词开头的行

我们将文件中以 root 开头的行打印出来,此时在关键字前面加上 ^ 符号

grep "^root" test.txt

3、打印某关键词结尾的行

我们将以关键字 bash 的行打印出来,在关键词后面加上 $ 符号

grep "bash$" test.txt

4、不区分大小写打印关键字的行

无论关键字中是否包含大大小写,都会打印出来,以下命令结果打印包含 root ,Root ,ROOT 等等行

grep -i  "root"  test.txt

5、显示行号打印

命令行结果包含关键字的同时,显示行号

grep -n  "root"  test.txt

6、递归打印

我们搜索所有的文件及子目录,包含关键字 root 的行

grep -r  "root"  

7、统计匹配某关键字的次数

此时不会打印整行,只会输出包含 root 的次数

grep -c  "root"  test.txt

8、过滤空白行

我们先输出所有内容,然后键入命令对比后,可以更好展示它们的区别

grep -v  "^$"  test.txt

9、查找包含多个关键字的行

我们查找包含 root 或者 sync 的行,这里 grep -E 等价于 egrep

grep -E  "root|sync" test.txt

上面使用了 Linux 正则表达式,还有更多的 Linux 正则表达式常用元字符如下

以上是常用的用法,下面我使用 GPT 回答该命令的主要用途:

学了就行动起来吧,更多命令,后续更新。

更多命令请前往 :Linux 专栏内容合集