close

感謝威爺提問,讓我複習幾百年沒用過的Linux指令了,現在覺得自己跟以前比起來要廢好多Orz

假設我們想要把現有目錄以及子目錄下面所有副檔名為php的檔案裡面bad換成good,那麼我們可以透過find加上sed來完成。

find ./ -name "*.php" -type f -exec sed 's/bad/good/' {} \;

首先./指的是起始目錄,接著我們透過-name來告訴find只要找*.php的檔案其他不管,-type f則是只看一般檔案,最後-exec當然就是把結果交給sed處理囉,透過一行簡單的指令就可以完成很大量的工作,是不是很有成就感呢?

此外,若只是要尋找檔案內容裡面的字串的話,使用grep即可,例如以下範例就是尋找此目錄以下包含子目錄所有包含bad字串的檔案:

grep -r bad ./

類似的grep指令常被使用於程式碼檢查,看過幾篇國外Hacker對open source的Web project做Code Inspection都只靠grep就抓到好幾個SQL Injection漏洞。

這次複習讓我回想到以前在搬系統的時候,要是沒這些指令會搬到吐血阿...可惜以前寫的文件在離開學校後都沒機會可以拿來參考了,太依賴公司的KM系統也是一大問題阿,知識都變成公司的,不過還好能力可以帶著走(每個人都該要有套自己的KM系統才是)

arrow
arrow
    全站熱搜

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