天天看点

shell学习部分笔记

找出行尾结束为小数点的一行

grep -n '\.$' regular_express.txt

grep -v '^$' /etc/syslog.conf|grep -v '^#'

[root@centos5 ~]# grep -n '[0-9][0-9]*' aa.log

1:However,this $31833 dollars

2:you no. 1.

怎么会包换第二行呢,这里面只有一个数字呀

[root@centos5 ~]# grep -n '[0-9][0-9]' aa.log

[root@centos5 ~]# grep -n '[0-9]' aa.log

[root@centos5 ~]# 

因为*代表:重复0个或者多个前面的RE字符,因为 o*表示拥有空字符或者一个o以上的字符,特别注意,因为允许空字符(就是不管是否有字符都可以的意思),因此,grep -n 'o*' aa.log 将会把所有数据都显示在屏幕上

如果是(oo*) 第一个o肯定要存在,第二个o则是可有可无的,所以,凡是含有o,oo,ooo,oooo,......都会列出来

同理,当需要至少两个o以上的字符串就需要 ooo*

[root@centos5 ~]# grep -n 'g.*g' aa.log

3:gasdfasgle

限定连续重复字符范围{}

比如找2~5个o的连续字符串,该怎么做?就是用{},又因为{}是特殊字符,所以得使用转义符\让他失去特殊意义。

找两个

grep -n 'o\{2\}' aa.log

2~5个

grep -n 'o\{2,5\}' aa.log

将行尾为 !的那一行显示出来

grep -n '!$' aa.log

本文转自guoli0813 51CTO博客,原文链接:http://blog.51cto.com/guoli0813/352067,如需转载请自行联系原作者