grep awk wc
awk:
echo "172.1.3.2:25 100 OK" |awk '{print $1}' #默认以空格为分隔符,{print $1}表示打印第一个字段,结果返回172.1.3.2:25
echo "172.1.3.2:25 100 OK" |awk -F ":" '{print $2}' #以 : 为分隔符,结果返回 25 100 OK
awk '{print $1}' |sort |uniq #排序去重
awk '{sum+=$3}END{print sum}' urfile #对第三列求和
wc:
echo "172.1.3.2:25 100 OK" |wc -l #统计文本行数,-w表示统计字数
grep:
ipvsadm -Ln |egrep 'Active|Route' #查找包含Active或Route关键字的行,等同于grep -E
ipvsadm -Ln |grep -v 'Active' #查找不包含 Active关键字的行
grep -E "Manager|developer" employee.txt |grep -v Sales #在文本employee.txt中查找包含Manager或developer,但不包含Sales的行
fgrep '01BB' /proc/net/ip_vs_conn |wc -l #不支持正则,搜索文本速度最快
grep参数含义如下:
-E :开启扩展(Extend)的正则表达式。
-i :忽略大小写(ignore case)。
-v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。
-n :显示行号
-w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker
-c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
-o :只显示被模式匹配到的字符串。
--color :将匹配到的内容以颜色高亮显示。
-A n:显示匹配到的字符串所在的行及其后n行,after
-B n:显示匹配到的字符串所在的行及其前n行,before
-C n:显示匹配到的字符串所在的行及其前后各n行,context