打印前后 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 上面的解释,把关键字作为一个词去匹配。grep -w
不包含
-v, verse. 翻转,不包含docker images|grep -w kougazhang|grep -vw \<none\>|grep -v grep|awk '{print $5}'
使用正则表达式
-E
是使用正则表达式。
使用正则表达式,过滤所有以 k 开头的镜像。
docker images|grep -E ^k.*
踩坑
使用正则表达式时会对整行字符进行过滤,而不单纯是文件名。
ls -al
-rwxr-xr-x 1 yutou staff 9.9K 2 27 12:25 worklistcmd*
ls -al
这行的开头字母是 -
而不是 文件名 w
, 所以这个命令是达不到过滤以 w
字母开头文件的效果的:
ls -al|grep -E '^w.*'
统计 grep 总数
docker ps -a|grep xxx|wc -l
wc, — word, line, character and byte count. 用来算 单词、字符、比特的。
- -c, 计算 character
- -l, 计算 line
踩坑
结果不是数字,是空格符加数字
115 # 前面是空格,直接作为数字会出错。