Linux 常用命令 grep

grep 查找文件中符合条件的字符串,与 sed、awk 组成 Linux 的三剑客,语法格式:grep [选项] 关键字 文件名
关键字加引号(单引号,双引号),不加引号的区别
关键字加引号,关键字会被看成一个整体,可以包含空格或特殊字符1)单引号如果关键字包含特殊字符($ 和 \' 除外),使用单引号会对特殊字符转义,进行完全匹配搜索2)双引号关键字即使包含特殊符号,使用双引号原样输出3)不加引号搜索包含关键字中任意单词的文本行
一、打印包含关键字的行
语法格式:grep "关键字" 文件名
查找包含关键字 root 的行,并显示出来

 

编辑
切换为居中
添加图片注释,不超过 140 字(可选)
二、打印以某关键字开头的行
语法格式:grep "^关键字" 文件名
在关键字前面加 ^ 号,表示搜索以关键字开头的行

 

编辑
切换为居中
添加图片注释,不超过 140 字(可选)
三、打印某关键字结尾的行
语法格式:grep "关键字$" 文件名
在关键字后面加上 $ 符号,表示查找以关键字结尾的行

 

编辑
切换为居中
添加图片注释,不超过 140 字(可选)
四、不区分大小写打印关键字的行
语法格式:grep -i "关键字" 文件名
打印包含 root 的行,可以是 Root ,ROOT 等等

 

编辑
切换为居中
添加图片注释,不超过 140 字(可选)
五、打印关键字并显示行号
语法格式:grep -n "关键字" 文件名
在文件
test.txt
中查找关键字的同时,并且显示行号

 

编辑
切换为居中
添加图片注释,不超过 140 字(可选)
六、递归搜索关键字
语法格式:grep -r 关键字
搜索所有的文件及子目录,包含关键字的行
grep -r "root" /home/back

 

编辑
切换为居中
添加图片注释,不超过 140 字(可选)
七、统计匹配某关键字的次数
语法格式:grep -c "关键字" 文件名
统计包含 root 的行数

 

编辑
切换为居中
添加图片注释,不超过 140 字(可选)
八、过滤空白行
固定的语法格式: grep -v "^$" 文件名
先输出所有内容,然后键入命令对比后,更好展示

 

编辑
切换为居中
添加图片注释,不超过 140 字(可选)
九、查找包含多个关键字的行
语法格式:grep -E "关键字1|关键字2" 文件名
查找包含 root 或者 sync 的行
grep -E "root|sync" test.txt

选项

  • -i 搜索时候忽略大小写

  • -n 列出所有的匹配行,显示行号

  • -v 反向选择

  • -c 只输出匹配行的数量

  • -l 只列出符合匹配的文件名,不列出具体的匹配行

  • -h 查询多文件时不显示文件名

  • -r 递归搜索

  • -q 禁止输出任何结果,已退出状态表示搜索是否成功

  • --color=auto 将找到的关键字加上颜色显示

  • -E, --extended-regexp PATTERN 是一个可扩展的正则表达式(缩写为 ERE)

  • -B, --before-context=NUM 打印以文本起始的NUM 行

  • -A, --after-context=NUM 打印以文本结尾的NUM 行

下面是一些使用grep命令的示例:

查找单个文件中的内容

grep "pattern" filename

这个命令将在filename文件中查找包含"pattern"字符串的行,并将其打印出来。

查找多个文件中的内容

grep "pattern" file1 file2 file3

这个命令将在file1、file2和file3文件中查找包含"pattern"字符串的行,并将它们打印出来。

递归查找目录中的文件

grep -r "pattern" directory

这个命令将在目录directory及其子目录中查找包含"pattern"字符串的文件,并将它们打印出来。

统计匹配的行数

grep -c "pattern" filename

这个命令将在filename文件中查找包含"pattern"字符串的行,并返回匹配的行数。

显示匹配行的行号

grep -n "pattern" filename

这个命令将在filename文件中查找包含"pattern"字符串的行,并返回匹配行的行号。

反向匹配

grep -v "pattern" filename

这个命令将在filename文件中查找不包含"pattern"字符串的行,并将其打印出来。

使用扩展正则表达式

grep -E "pattern" filename

这个命令将在filename文件中使用扩展正则表达式查找包含"pattern"字符串的行,并将其打印出来。

只匹配整个单词

grep -w "pattern" filename

这个命令将在filename文件中查找包含"pattern"整个单词的行,并将其打印出来。

显示匹配行之前的若干行

grep -B 2 "pattern" filename

这个命令将在filename文件中查找包含"pattern"字符串的行,并显示匹配行之前的2行。

显示匹配行之后的若干行

grep -A 2 "pattern" filename

这个命令将在filename文件中查找包含"pattern"字符串的行,并显示匹配行之后的2行。

显示匹配行前后的若干行

grep -C 2 "pattern" filename

这个命令将在filename文件中查找包含"pattern"字符串的行,并显示匹配行前后的2行。

 

 

编辑
posted @ 2023-10-09 17:34  星空物语之韵  阅读(18)  评论(0编辑  收藏  举报