grep命令基础练习题

常用的grep选项是:

-c 只输出匹配行的计数。-i 不区分大小写(只适用于单字符)。-h 查询多文件时不显示文件名。-l 查询多文件时只输出包含匹配字符的文件名。-n 显示匹配行及行号。-s 不显示不存在或无匹配文本的错误信息。-v 显示不包含匹配文本的所有行。

文件格式:

第1列:城市位置编号。第2列:月份。第3列:存储代码及出库年份。第4列:产品代号。第5列:产品统一标价。第6列:标识号。第7列:合格数量。

file.txt文件内容:48 Dec 3BC1977 LPSX 68.00 LVX2A 138483 Sept 5AP1996 USP65.00 LVX2C 18947 Oct 3ZL1998 LPSX 43.00 KVM9D 512219 dec 2CC1999 CAD23.00 PLV2C 68484 nov 7PL1996 CAD49.00 PLV2C 234483 may 5PA1998 USP37.00 KVM9D 644216 sept 3ZL1998 USP86.00 KVM9E 234练习:1 含有“48”字符串的行的总数[root@]# grep -c 48 file.txt42 显示含有“48”字符串的所有行的行号[root@]# grep -n 48 file.txt1:48 Dec 3BC1977 LPSX 68.00 LVX2A 1382:483 Sept 5AP1996 USP 65.00 LVX2C 1895:484 nov 7PL1996 CAD 49.00 PLV2C 2346:483 may 5PA1998 USP 37.00 KVM9D 6443 精确匹配只含有“48”字符串的行[root@]# grep “48\&;” file.txt48 Dec 3BC1977 LPSX 68.00 LVX2A 138PS:使用g r e p抽取精确匹配的一种更有效方式是在抽取字符串后加\ >4 抽取代码为4 8 4和4 8 3的城市位置[root@]# grep -E “48[3|4]\&;” file.txt483 Sept 5AP1996 USP 65.00 LVX2C 189484 nov 7PL1996 CAD 49.00 PLV2C 234483 may 5PA1998 USP 37.00 KVM9D 644PS:使用[ ]来指定字符串范围5 显示使行首不是4或8[root@]# grep -v “^[4|8]” file.txt[root@]# grep -v “^[48]” file.txt[root@]# grep -v “^[4,8]” file.txt[root@]# grep “^[^48]” file.txt #这个是直接最简单的方法219 dec 2CC1999 CAD 23.00 PLV2C 68216 sept 3ZL1998 USP 86.00 KVM9E 234

PS:可以在方括号中使用^记号,表示行首不是某字符6 显示含有九月份的行[root@]# grep -i Sept file.txt[root@]# grep -E “[Ss]ept” file.txt483 Sept 5AP1996 USP 65.00 LVX2C 189216 sept 3ZL1998 USP 86.00 KVM9E 234PS :使用- i开关可以屏蔽月份S e p t的大小写敏感7 显示以K开头,以D结尾的所有代码[root@]# grep “K…D” file.txt47 Oct 3ZL1998 LPSX 43.00 KVM9D 512483 may 5PA1998 USP 37.00 KVM9D 644PS:点.代表任意一个字符,由于代码是五位字符的字符串,所以中间用三个点表示任意字符8 显示头两个是大写字母,,中间两个任意,并以C结尾的代码[root@]# grep “[A-Z][A-Z]..C” file.txt483 Sept 5AP1996 USP 65.00 LVX2C 189219 dec 2CC1999 CAD 23.00 PLV2C 68484 nov 7PL1996 CAD 49.00 PLV2C 234PS:[A-Z]表示任意一个大写字母9 查询所有以5开始以1 9 9 6或1 9 9 8结尾的所有记录[root@]# grep “5..199[68]” file.txt483 Sept 5AP1996 USP 65.00 LVX2C 189483 may 5PA1998 USP 37.00 KVM9D 644

这种精神使人能在旅行中和大自然更加接近,

grep命令基础练习题

相关文章:

你感兴趣的文章:

标签云: