Linux grep 要過濾字串,可以使用 -v 來過濾,例如:
- grep -v string filename
若要過濾多個字串的話,偷懶就多串幾個 | 就好,例如:
- grep -v string filename | grep -v string2 | grep -v string3
若不要用 Pipe(|),想要直接一行 grep 解決,要搭配 -e 操作,例如:
- grep -v -e string -e string2 -e string3 filename
個人筆記, 記錄關於 系統、程式、新聞 與 日常生活 等資訊
Linux grep 要過濾字串,可以使用 -v 來過濾,例如:
若要過濾多個字串的話,偷懶就多串幾個 | 就好,例如:
若不要用 Pipe(|),想要直接一行 grep 解決,要搭配 -e 操作,例如:
若一個檔案很大,想要知道處理進度,就會需要知道目前這個字串於此檔案的何處~
所以可以使用 grep 找出目前處理到第幾行,在用 wc -l 看檔案的總行數,就可以知道目前處理到幾%的進度
Linux 想要使用 grep 把檔案裡面有 [Tab] 的內容找出來,有下面幾種方法:
tail -F 一直把 Log 撈出來,然後 grep 出想要的內容,在即時打出來
但是,發現打出 Log 的時間並不是即時打出來的,而會累積一段時間後才打出來,要怎麼能即時將內容打出來呢?
Linux 若想要多檔案、目錄要 grep 內容,可以使用 -r,但是出來的結果都會有檔名、路徑,不要呈現要怎麼做呢?
Linux 的 grep 通常後面會 Pipe 接很多的處理,結果有檔名、路徑等資料,反而會造成後續的困擾。
可以使用 -h 來決定檔名路徑是否要呈現
平常要找某 Process (Ex: Apache) 的 Pid,都是 ps aux | grep apache 然後在搭配 awk 來把 pid 撈出來。
上述方式撈出來的這些 pid 常常會有一個是 ps 的 pid,而且撈的方式還蠻辛苦的~ 使用 pgrep 可以比較輕鬆解決~
Linux 使用 grep 找資料很方便,再找程式碼的時候,除了找到的那一行外,特別需要在那行的前後幾行都列出來,要怎麼做呢?
MySQL 使用 show processlist、show full processlist 常常會出現一卡車的 Sleep,>或者一些想要過濾掉的東西,可以怎麼做呢?
sift 預設跟 grep 非常類似,都是要搜尋檔案內容使用的
Linux 經常使用 grep 來找需要的文字,grep 除了平常直接比對關鍵字外,還可以使用 Regular Expression (regex) 來找符合的字串~