Linux 常用命令 grep
大家好,我是云炬学长。基于目前很多企业都在使用 Linux 操作系统,掌握 Linux 命令行已经成为运维人必备的基础知识和技能,学习命令是为了更好地解决问题。
上一篇分享了运维中遇到的问题及解决办法,这次分享 Linux 的常用基础命令 grep 。
grep 查找文件中符合条件的字符串,与 sed、awk 组成 Linux 的三剑客,语法格式:grep [选项] 关键字 文件名
关键字加引号(单引号,双引号),不加引号的区别
关键字加引号,关键字会被看成一个整体,可以包含空格或特殊字符 1)单引号 如果关键字包含特殊字符($ 和 \' 除外),使用单引号会对特殊字符转义,进行完全匹配搜索 2)双引号 关键字即使包含特殊符号,使用双引号原样输出 3)不加引号 搜索包含关键字中任意单词的文本行
一、打印包含关键字的行
语法格式:grep "关键字" 文件名
查找包含关键字 root 的行,并显示出来

编辑切换为居中
二、打印以某关键字开头的行
语法格式:grep "^关键字" 文件名
在关键字前面加 ^ 号,表示搜索以关键字开头的行

编辑切换为居中
三、打印某关键字结尾的行
语法格式:grep "关键字$" 文件名
在关键字后面加上 $ 符号,表示查找以关键字结尾的行

编辑切换为居中
四、不区分大小写打印关键字的行
语法格式:grep -i "关键字" 文件名
打印包含 root 的行,可以是 Root ,ROOT 等等

编辑切换为居中
五、打印关键字并显示行号
语法格式:grep -n "关键字" 文件名
在文件 test.txt 中查找关键字的同时,并且显示行号

编辑切换为居中
六、递归搜索关键字
语法格式:grep -r 关键字
搜索所有的文件及子目录,包含关键字的行
grep -r "root" /home/back
编辑切换为居中
七、统计匹配某关键字的次数
语法格式:grep -c "关键字" 文件名
统计包含 root 的行数

编辑切换为居中
八、过滤空白行
固定的语法格式: grep -v "^$" 文件名
先输出所有内容,然后键入命令对比后,更好展示

编辑切换为居中
九、查找包含多个关键字的行
语法格式:grep -E "关键字1|关键字2" 文件名
查找包含 root 或者 sync 的行
grep -E "root|sync" test.txt

编辑切换为居中
这里使用了 Linux 正则表达式,Linux 正则表达式常用元字符如下

编辑切换为居中