grep -E '^(root|sshd)\>' /etc/passwd 找出以root或者sshd开头的,且只含root或者sshd,>表示匹配到root或者sshd就结束了,类似情况如下图:
grep -c '^yu' /etc/passwd 匹配含yu这个用户出现的次数
grep -m 2 '^yu' /etc/passwd 最大只匹配2次 含yu这个用户
grep -l '^yu\>' /etc/passwd a.txt lovers.txt 从多个文件中找只含有yu开头的且yu右边不匹配的文件的名字
grep -Ev '.*/bin/bash$' a.txt 从a.txt中找出不以/bin/bash结尾的行
grep -v '/bin/bash$' /etc/passwd 从a.txt中找出不以/bin/bash结尾的行
grep -E '\<[0-9]{2,3}\>' a.txt 从a.txt中找出只含有2位数或者3位数的,\<,\>表示2位数3位数左右两个不再有其他数字了
grep -E '^[[:space:]][^[:space:]]' lovers.txt 找到以1个空格开头,第二个不是空格的内容
grep -E '^[[:space:]]' lovers.txt 找到以空格开头的内容
grep -E '^[[:space:]].*' lovers.txt 找到以空格开头,后面任意内容的行
grep -E '^[[:space:]][^[:space:]]+' lovers.txt 找到以1个空格开头,第二个不是空格,继续后面多个都不是空格的内容
找出不区分大小写以i开头的行,有以下3种写法:
grep -i '^I' lovers.txt
grep -E '^(i|I)' lovers.txt
grep -E '^[iI]' lovers.txt