![]() |
阿舍看到這張圖的這篇文才知道,有這件事哩 (警語: 伸手做出這個動作是不當的行為哩 ! ...^^!!) |
結果,原來,這個 grep 指令就有提供阿舍要的功能,就是可以指定顯示符合條件行及其前後指定行數的功能哩 ! 所以,阿舍不用自己造輪子,用 grep 現成的功能就可以哩 ! .... XD !
這個 grep 提供「A」選項來供指定顯示符合條件行之前的行數,然後,提供一個「B」選項來給人指定顯示符合條件行之後的行數,所以,以阿舍想要顯示「arthurtoday.txt」檔案裡,符合 "xyz" 字串的那一行及前、後各三行的話,就可以用下面這行指令來搜尋哩 ! ( 要注意的是,A 及 B 選項都是要大寫的哩 ! )
grep -A3 -B3 "xyz" arthurtoday.txt
上面這一行算是最簡單的用法,在實務上,阿舍要搜尋的是家目錄下的「articles」這個資料夾下的所有檔案及子資料夾的檔案,同時,要忽略大小寫,然後,把 grep 的搜尋結果產出到一個叫做「out.txt」的檔案裡,因此,阿舍就會需要用到「R」選項來要求 grep 對資料夾做遞迴式搜尋,以及用「i」選項來不分大小寫哩 !
grep -R -i -A3 -B3 "xyz" ~/articles/*.* > out.txt
另外,Ubuntu 上的 grep 指令在顯示搜尋結果的時候,預設是會在每一行的前面加上檔案名稱的,如果不想顯示來源的檔案名稱的話,就可以多加一個小寫的「h」選項來要求不顯示檔名哩 !
grep -R -i -h -A3 -B3 "xyz" ~/articles/*.* > out.txt
問題還是沒解決嗎 ?? 這裡有更多的 Ubuntu 相關教學可以參考哩 ...
買本阿舍寫的電子書帶走 - Ubuntu 指令新手馬上會用到的 35 個技法
沒有留言 :
張貼留言