grep

Posted: 十二月 18, 2010 in 技術相關

以前一直有一個問題困擾我,就是例如我要讀一個檔 (file)時,他的內容如下

==

Po12    1 5

Po123  49

==

今天我要抓出 “Po12″ 時,我用 `cat ./file | grep “Po12″`

他會把兩筆資料都抓出來。

直接下指令時,或許我可以用 `cat ./file | grep “Po12\s"` 利用 “\s" 來顯示後面接的為空白符號。

直接在 shell 下面下時可以,但這東西寫到 perl 裡 run 時,不知道為何就不 work 。

所以以前我就笨笨的把 line 一行一行讀進來在 parse ….

後來才知道原來用 “grep -w" 就可以了 Q_Q

`cat ./file | grep “Po12″ -w` 搞定。

唉,真是聰明的人寫程式和笨的人就是差這麼多 >"<

一行搞定 ….

==

附上 -w 的 man 資料

-w, –word-regexp
Select  only  those lines containing matches that form whole words.  The test is that the matching substring
must either be at the beginning of the line, or preceded by a non-word constituent character.  Similarly, it
must  be  either  at  the end of the line or followed by a non-word constituent character.  Word-constituent
characters are letters, digits, and the underscore.

 

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s