Linux上用關鍵字找檔案內容的關鍵字

遇到一個需求,要把一堆目錄中的某個關鍵檔名抓出來交付。

這邊記錄下指令用法

尋找指令用 find

# find ./ -name "*-d.jpg" -type f 

./ 表示從當前目錄下開始
-name 名稱是後面 *-d.jpg,*是萬用符號
-type f 表示只找檔案,找目錄的話用 d

統計一下總共找到多少

# find ./ -name "*-d.jpg" -type f  |  wc -l

把找到的結果,送給下一個指定使用,用指令 xargs

我希望把找到的東西另外複製到 haha 這個資料夾去就這樣打

# find ./ -name "*-d.jpg" -type f  |  xargs -i  cp {}  haha

然後進入 haha 這個目錄後比對下檔案數量跟上面的統計數字是不是一樣就可以知道有沒有漏

# cd haha
# ls | wc -l

刪除的用法

# find ./ -name "*-d.jpg" -type f  |  xargs -i  rm -rf {}

追加一個,在指定目錄內,替換關鍵字。例如在目錄 /home/test/內。把aaa換成bbb

# sed -i 's/aaa/bbb/g' /home/test/*

如果是有特殊字元的狀況,要用特殊字元要用斜線「\」來跳脫。例如把 A!1 替換為 B!2

# sed -i "s/A\!1/B\!2/g" /home/test/*