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 专栏内容合集