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
1:However,this $31833 dollars


[root@centos5 ~]# grep -n '[0-9]' aa.log
1:However,this $31833 dollars
2:you no. 1.
[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

[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

 

你可能感兴趣的:(shell,学习,职场,笔记,休闲)