grep和正则表达式:
1.不匹配行首:
grep '^[^48]' data.f
219 DEC 2CC1999 CAD 23.00 PLV2C 68
216 sept 3ZL1998 USP 86.00 KVM9E 234
2.模式范围:
grep '48[34]' data.f
483 Sept 5AP1996 USP 65.00 LVX2C 189
484 nov 7PA1998 CAD 49.00 PLV2C 234
483 may 5PA1998 USP 37.00 KVM9D 644
3.大小写
grep '[Ss]ept' data.f
483 Sept 5AP1996 USP 65.00 LVX2C 189
216 sept 3ZL1998 USP 86.00 KVM9E 234
4.匹配任意字符
K后面3个字符,然后接着D:
grep 'K...D' data.f
47 Otc 3Z1998 LPSX 43.00 KVM9D 512
483 may 5PA1998 USP 37.00 KVM9D 644
K后面跟着2个字符,然后接着9:
grep 'K.\{2\}9' data.f
47 Otc 3Z1998 LPSX 43.00 KVM9D 512
483 may 5PA1998 USP 37.00 KVM9D 644
216 sept 3ZL1998 USP 86.00 KVM9E 234
头2个字符为大写字母,以C结尾,中间2个任意字符:
grep '[A-Z][A-Z]..C' data.f
483 Sept 5AP1996 USP 65.00 LVX2C 189
219 DEC 2CC1999 CAD 23.00 PLV2C 68
484 nov 7PA1998 CAD 49.00 PLV2C 234
grep '5..199[6,8]' data.f
483 Sept 5AP1996 USP 65.00 LVX2C 189
483 may 5PA1998 USP 37.00 KVM9D 644
匹配一行中的任意位置:
grep '[0-9][0-5][0-6]' data.f
47 Otc 3Z1998 LPSX 43.00 KVM9D 512
484 nov 7PA1998 CAD 49.00 PLV2C 234
483 may 5PA1998 USP 37.00 KVM9D 644
216 sept 3ZL1998 USP 86.00 KVM9E 234
匹配行首的位置:
grep '^[0-9][0-5][0-6]' data.f
216 sept 3ZL1998 USP 86.00 KVM9E 234
至少出现n次:
grep '4\{2,\}' data.f
483 may 5PA1998 USP 37.00 KVM9D 644
5.使用grep匹配“与”或者“或”模式
-E:允许使用扩展模式匹配
grep -E '219|216' data.f
219 DEC 2CC1999 CAD 23.00 PLV2C 68
216 sept 3ZL1998 USP 86.00 KVM9E 234
空行:
[开发]/usr/xxxx/ytcclb>grep '^$' info.txt
[开发]/usr/xxxx/ytcclb>
匹配IP地址:
grep '[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}' *.address