用于过滤文件的Unix脚本

时间:2014-05-12 07:40:31

标签: shell unix

我必须编写一个unix脚本,我真的不熟悉它并需要帮助。

我有一个根目录,里面有很多其他目录。 每个目录都包含txt files。 我必须浏览所有目录和所有文件:

  • 如果文件包含短语"file information"我想保留 文件

  • 如果文件中没有该文件,我想删除该文件。

  • 然后,如果目录的所有文件都已删除,则为 目录为空,我想删除目录。

我该如何编写这样的脚本?

由于

1 个答案:

答案 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.)