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

作者: eyway8312 (小蒜)   2019-04-24 08:40:50
如題 小弟我是新手 在此虛心求教 昨天研究了一番
假設我的目錄內有 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
誠心向板上大大詢問 在此感激不盡
作者: rickieyang (Rickie Yang)   2019-04-24 09:38:00
for i in `find . -type f ! -name "abc*"`; doif (! grep "#try" $i) the rm -f $i; fi; doneif (! grep "#try" $i) then rm -f $i; fi; done
作者: eyway8312 (小蒜)   2019-04-24 09:42:00
先謝謝r大 我回家試試看研究研究
作者: rickieyang (Rickie Yang)   2019-04-24 09:42:00
abc 下的檔案要處理嗎? 不需要的話 find 加 -maxdepth把 $i 改成 "$i" 吧... 避免檔名有空格
作者: eyway8312 (小蒜)   2019-04-24 09:44:00
abc忘記說 是空目錄

Links booklink

Contact Us: admin [ a t ] ucptt.com