[問題] 刪除特定檔案&內容外檔案

看板Linux作者 (湘緣)時間6年前 (2019/04/24 08:40), 6年前編輯推噓1(106)
留言7則, 2人參與, 6年前最新討論串1/1
如題 小弟我是新手 在此虛心求教 昨天研究了一番 假設我的目錄內有 4個檔案1個目錄 ABC1.log ABC2.log ABC3.log unused.log abc 其中abc為資料夾 ABC1.log ABC3.log 這兩個檔案內有 #try 的字串 假設我要保留有ABC開頭檔案且裡面要有 #try字串 其餘皆刪除怎麼做比較好 小弟我研究很久只寫出找到有這兩個條件的檔案以及不符合的檔案 find . -name "ABC*" -exec grep -H "#try" {} \; 找到檔案內有#try 即ABC1.log ABC3.log find . ! -name "ABC*" ! -name "abc " 沒有ABC字串也沒有abc字串的檔案 即unused.log 誠心向板上大大詢問 在此感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.82.82.62 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1556066452.A.8C7.html ※ 編輯: eyway8312 (115.82.82.62), 04/24/2019 08:41:05

04/24 09:38, 6年前 , 1F
for i in `find . -type f ! -name "abc*"`; do
04/24 09:38, 1F

04/24 09:40, 6年前 , 2F
if (! grep "#try" $i) the rm -f $i; fi; done
04/24 09:40, 2F

04/24 09:40, 6年前 , 3F
if (! grep "#try" $i) then rm -f $i; fi; done
04/24 09:40, 3F

04/24 09:42, 6年前 , 4F
先謝謝r大 我回家試試看研究研究
04/24 09:42, 4F

04/24 09:42, 6年前 , 5F
abc 下的檔案要處理嗎? 不需要的話 find 加 -maxdepth
04/24 09:42, 5F

04/24 09:44, 6年前 , 6F
把 $i 改成 "$i" 吧... 避免檔名有空格
04/24 09:44, 6F

04/24 09:44, 6年前 , 7F
abc忘記說 是空目錄
04/24 09:44, 7F
文章代碼(AID): #1Slx2KZ7 (Linux)
文章代碼(AID): #1Slx2KZ7 (Linux)