天天看點

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,如需轉載請自行聯系原作者