刪除特定檔案&內容外檔案 - Linux

Table of Contents

如題 小弟我是新手 在此虛心求教 昨天研究了一番
假設我的目錄內有 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

誠心向板上大大詢問 在此感激不盡

--

All Comments

Linda avatarLinda2019-04-25
for i in `find . -type f ! -name "abc*"`; do
Ina avatarIna2019-04-27
if (! grep "#try" $i) the rm -f $i; fi; done
if (! grep "#try" $i) then rm -f $i; fi; done
Bennie avatarBennie2019-05-02
先謝謝r大 我回家試試看研究研究
Ivy avatarIvy2019-05-06
abc 下的檔案要處理嗎? 不需要的話 find 加 -maxdepth
Candice avatarCandice2019-05-10
把 $i 改成 "$i" 吧... 避免檔名有空格
Emma avatarEmma2019-05-11
abc忘記說 是空目錄