Linux Grep

语法

grep [-abcEFGhHilLnqrsvVwxy]
    [-A<显示行数>][-B<显示列数>][-C<显示列数>]
    [-d<进行动作>][-e<范本样式>][-f<范本文件>]
    [--help][范本样式][文件或目录...]

-v 或 --invert-match : 显示不包含匹配文本的所有行。
-o 或 --only-matching : 只显示匹配PATTERN 部分。
-c 或 --count : 计算符合样式的列数。
-r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同,显示文件名称
-i 或 --ignore-case : 忽略字符大小写的差别。
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。

-A <显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。     
-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。

常规使用

# 查询当前目录及子目录文件内的符合值
$ grep -r 11231 *

# 过滤不符合的值
$ grep -v 11231

# 符合多项的值
$ grep -E "11231|mon"

# 显示无注释的值
$ grep -Ev "^#|^$" /etc/my.cfg

# 显示输出内容制定列
$ docker ps --format "table {{.ID}}"
$ docker ps --format "table {{.ID}}\t{{.Names}}"

pgrep指令

# pgrep命令以名称为依据从运行进程队列中查找进程,并显示查找到的进程id。
# 语法:pgrep 选项 参数

选项:
-o:仅显示找到的最小(起始)进程号;
-n:仅显示找到的最大(结束)进程号;
-l:显示进程名称;
-P:指定父进程号;
-g:指定进程组;
-t:指定开启进程的终端;
-u:指定进程的有效用户ID。
-f : 匹配出含参数的进程并输出进程PID

# 杀掉含abd的所有进程
$ pkill -f abc