李先生(Lemon),高级运维工程师(自称),SRE专家(目标),梦想在35岁买一辆保时捷。喜欢钻研底层技术,认为底层基础才是王道。一切新技术都离不开操作系统(CPU、内存、磁盘)、网络等。坚持输入输出,记录自己学习的点滴,在平凡中坚持前行,总有一天会遇见不一样的自己。公众号:运维汪(ID:Leeeee_Li)。
grep [options] pattern [files]
-c: 只输出匹配行的数目
-h: 打印出匹配的行,但是不显示其文件名
-i: 不区分大小写
-l: 查询多文件的时候只输出包含匹配字符的文件名
-n: 打印匹配行以及行号
-v: 反向匹配,即显示不匹配的行
-w: 匹配整个单词,而不是整个字符串
-b: 显示匹配的位置
-o: 只显示匹配的字串
-s: 不显示错误信息
-e exp:匹配多个
-E:使用正则匹配
1:匹配项标记颜色
echo “This is a word \n heihei” |grep word --color=auto
2:把/etc/passwd包含root的取出来
grep root /etc/passwd or cat /etc/passwd |grep root
grep -v root /etc/passwd or cat /etc/passwd |grep -v root
dmesg | grep eth -n --color=auto
dmesg |grep eth -n -A3 -B2 --color=auto
echo $?
# 0:表示成功
# 1:表示没有匹配到
# 2:表示参数中的文件不存在
ifconfig | grep -C 3 "Link encap"
grep -c "baidu.com" file.txt
grep "declare" 当前目录下查找 grep -r "declare" 当前目录以及子目录下查找 grep -r -l "declare" 查找只显示文件名称,不具体显示的行 grep -R --exclude-dir="filename" baidu.com 除开某一个目录不匹配
grep ^[^#] filename
grep "^\s*[^# \t].*$" filename
file1:
ddf
ddc
file2:
shinjldin
adcddf
ddf
grep -f file1 file2
echo grep init |grep init echo grep init |grep [i]nit echo grep [i]nit |grep init echo grep [i]nit |grep [i]nit
grep -E “^[a-zA-Z0-9]” filename grep "^[a-zA-Z0-9]" filename 如果不加E的话,会匹配出错
2、实例
下面两个写法都能达到同一个目的,使用-E与不使用-E的写法
cat a.txt |grep -oE ‘id=[0-9]{9,10}‘ cat a.txt |grep -o ‘id=[0-9]\{9,10\}‘
欢迎大家关注我的公众号,一起交流、学习。
原文:https://www.cnblogs.com/lemon-le/p/14262758.html