Linux中 grep 命令

本文详细介绍grep命令的使用方法,包括基本语法、常用参数如-b、-c、-i、-n、-v、-r等,以及如何在单个或多个文件中进行关键词搜索,使用正则表达式进行复杂匹配,递归搜索目录,反向查找,结合管道符与其他命令配合使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

grep 命令

grep 命令用于在文件中执行关键词搜索,并显示匹配的效果。格式为 “grep [选项] [文件]”。其实 grep 可以这样来记忆: g 表示 global,re 表示 regular expression,p 表示 print. 。

参数作用
-b将可执行文件当文本文件来搜索
-c仅显示找到的行数
-i忽略大小写
-n显示行号
-v反向选择 – 仅列出没有关键词的行。v 是 invert 的缩写。
-r递归搜索文件目录

使用

在 helloWorld 中搜索一个单词,命令会返回一个包含 hello 的文本行。

grep hello helloWorld.txt

在多个文件中搜索

grep hello helloWorld.txt helloWorld.txt2 helloWorld.txt3

在多个文件搜索的时候,可以使用通配符。在以 hello 开头的文件中,搜索包含 hello 的行。

[apple@VM_0_8_centos ~]$ grep hello hello

hello.groovy:println “hello world”

helloWorld:hello World

递归搜索目录下所有文件, 搜索 apple 目录下所有文件,打印出包含 hello 的行。

grep hello -r apple/

反向查找,查找文件中,不包含 hello 的行。

grep -v hello helloWorld.txt

找出文件中包含 hello 的行,并打印出行号

grep -n hello helloWorld

使用正则表达式,找出 l 出现两次,并且后边为 o 的行, 正则表达式是 l{2}o ,因为 {} 是特殊符号,因此使用反斜杠 \ 转义,同时我发现,要想使用正则表达式,得加上单引号。

grep ‘l{2}o’ helloWorld

获取 tomcat 进程 id

ps aux | grep ^whoami | grep tomcat |grep -v grep| awk ‘{print $2}’

如果对这个命令不太理解,可将命令分割为多个命令,在命令行上依次敲以下命令:

whoami

ps aux

ps aux | grep ^whoami

ps aux | grep ^whoami | grep tomcat // 这里要确保你运行了 tomcat , 没有 tomcat ,运行其他的进程也可以,记得替换 tomat

ps aux | grep ^whoami | grep tomcat |grep -v grep

ps aux | grep ^whoami | grep tomcat |grep -v grep| awk ‘{print $2}’

| :管道符,将前一个命令的输出作为下一个命令的输入

ps aux :查看系统进程状态

grep ^whoami : whoami 显示当前用户名,反引号 `` 首先执行, ^ : 正则表达式开头, 其实就是获取 ps aux 第一列中用户名是当前用户的行

grep tomcat : 获取包含 tomcat 的行

grep -v grep : 不要包含 grep 的行

awk ‘{print $2}’:获取第二列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值