Linux grep/ack/ag 搜尋字串用法與範例

本篇 ShengYu 將介紹如何使用 Linux 下的 grep/ack/ag 指令來搜尋字串,並且將搜尋結果的檔案同時進行移動/複製/刪除。

搜尋目錄下特定樣式的字串

1
2
3
4
5
6
# 使用 grep
grep -rI "foo" *
# 使用 ack (Ack-Grep)
ack "foo"
# 使用 ag (The Silver Srarcher)
ag "foo"

搜尋目錄下檔案內有特定樣式的字串,並且將這些檔案移動mv/複製cp/刪除rm

1
2
3
4
5
# 搜尋包含hello關鍵字的檔案,並且將這些檔案移動到tmp資料夾
$ ack "hello" ./ -l --print0 | xargs -0 -i mv {} tmp

# 刪除包含 hello 關鍵字的檔案
$ ack "hello" ./ -l --print0 | xargs -0 rm

搜尋目錄下檔案內有特定樣式的字串,並且將這些檔案進行取代

1
2
3
# 把目錄下所有檔案文字中包含 "oldtext" 的 取代成 "newtext"  
$ ag oldtext -l0 | xargs -0 sed -i 's/oldtext/newtext/g'
$ grep -rl oldtext . | xargs sed -i 's/oldtext/newtext/g'

其它相關文章推薦
Linux 常用指令教學懶人包
Linux cut 字串處理用法與範例
Linux sed 字串取代用法與範例
Linux find 尋找檔案/尋找資料夾用法與範例