grep 是一個很實用的工具,多數用於要從一堆檔案中,找出出現某個特定字串的檔案,又或是從 log 中 filter 出有相關的項目。

每次運用時,都必定會知道要找的確實關鍵字,例如用

grep printf *.c

來找出所有運用 printf 的 C 程式碼。又或是用

grep 123.123.123.123 access.log

把所有由 123.123.123.123 這個 IP 的存取記錄,從 Apache 的 access log 找出來。

就這樣,我漸漸已忘記了 grep 之所以名為 grep,是因為 regular expression 的緣故:g/re/p。當我想要找出同時有 apple 和 orange 字串的時候,很自然的我就會這樣做:

grep apple text.txt | grep orange

但如果是 apple 或 orange 呢?運用 regular expression 便很輕鬆了:

grep "apple\|orange" text.txt

要注意 | 前要加上 \ 來 escape 字元。同理,先前的 apple 和 orange 的例子,我們也可以這樣做:

grep "apple.*orange\|orange.*apple" text.txt

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 小輝 的頭像
    小輝

    惘然

    小輝 發表在 痞客邦 留言(0) 人氣()