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
1
在多个文件中搜索
grep hello helloWorld.txt helloWorld.txt2 helloWorld.txt3
1
在多个文件搜索的时候,可以使用通配符。在以 hello 开头的文件中,搜索包含 hello 的行。
[apple@VM_0_8_centos ~]$ grep hello hello*
hello:hello
hello.groovy:println "hello world"
helloWorld:hello World
1
2
3
4
递归搜索目录下所有文件, 搜索 apple 目录下所有文件,打印出包含 hello 的行。
grep hello -r apple/
1
反向查找,查找文件中,不包含 hello 的行。
grep -v hello helloWorld.txt
1
找出文件中包含 hello 的行,并打印出行号
grep -n hello helloWorld
1
使用正则表达式,找出 l 出现两次,并且后边为 o 的行, 正则表达式是 l{2}o ,因为 {} 是特殊符号,因此使用反斜杠 \ 转义,同时我发现,要想使用正则表达式,得加上单引号。
grep 'l\{2\}o' helloWorld
1
获取 tomcat 进程 id
ps aux | grep ^`whoami` | grep tomcat |grep -v grep| awk '{print $2}'
1
如果对这个命令不太理解,可将命令分割为多个命令,在命令行上依次敲以下命令:
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}'
1
2
3
4
5
6
| :管道符,将前一个命令的输出作为下一个命令的输入
ps aux :查看系统进程状态
grep ^`whoami` : whoami 显示当前用户名,反引号 `` 首先执行, ^ : 正则表达式开头, 其实就是获取 ps aux 第一列中用户名是当前用户的行
grep tomcat : 获取包含 tomcat 的行
grep -v grep : 不要包含 grep 的行
awk ‘{print $2}’:获取第二列
————————————————
版权声明:本文为CSDN博主「ilpanda」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/stupid56862/article/details/90898465