我必须编写一个unix脚本,我真的不熟悉它并需要帮助。
我有一个根目录,里面有很多其他目录。
每个目录都包含txt files
。
我必须浏览所有目录和所有文件:
如果文件包含短语"file information"
我想保留
文件
如果文件中没有该文件,我想删除该文件。
然后,如果目录的所有文件都已删除,则为 目录为空,我想删除目录。
我该如何编写这样的脚本?
由于
答案 0 :(得分:0)
删除包含" STRING":
的所有文件rm -rf $(find . -type f -exec grep -l 'STRING' {} \;)
并删除所有empry目录:
find . -empty -type d -delete
<强>更新强>
来自man grep
:
-L, - thefiles-without-match
Suppress normal output; instead print the name of each input file from which no output would normally have been printed. The scanning will stop on the first match.
-l, - with-matches-matches
Suppress normal output; instead print the name of each input file from which output would normally have been printed. The scanning will stop on the first match. (-l is specified by POSIX.)