打印前后 N 行

  • grep -A num, —after context num。打印出匹配字符串的后 num 行;
  • grep -B num, —before context num。打印出匹配字符串的前 num 行;
  • grep -V num, —context, 打印屁屁额字符串的前后 num 行。

    忽略大小写

    grep 本身区别大小写,忽略大小写 grep -i

    完全匹配

    -w, —word-regexp
    The expression is searched for as a word (as if surrounded by [[:<:]]' and[[:>:]]’; see re_format(7)).
    这是 man 上面的解释,把关键字作为一个词去匹配。
    1. grep -w

    不包含

    -v, verse. 翻转,不包含
    1. docker images|grep -w kougazhang|grep -vw \<none\>|grep -v grep|awk '{print $5}'

    使用正则表达式

    -E 是使用正则表达式。
    使用正则表达式,过滤所有以 k 开头的镜像。
  1. docker images|grep -E ^k.*

踩坑

使用正则表达式时会对整行字符进行过滤,而不单纯是文件名。

  1. ls -al
  2. -rwxr-xr-x 1 yutou staff 9.9K 2 27 12:25 worklistcmd*

ls -al 这行的开头字母是 - 而不是 文件名 w , 所以这个命令是达不到过滤以 w 字母开头文件的效果的:

  1. ls -al|grep -E '^w.*'

统计 grep 总数

  1. docker ps -a|grep xxx|wc -l

wc, — word, line, character and byte count. 用来算 单词、字符、比特的。

  • -c, 计算 character
  • -l, 计算 line

踩坑
结果不是数字,是空格符加数字

  1. 115 # 前面是空格,直接作为数字会出错。