close
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
全站熱搜
留言列表