grep - 命令

grep 命令

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

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

上述选项只列出了我常用的命令,想了解更多命令。可以使用 man grep 查找。


使用

在 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: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}’:获取第二列

  • 8
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值