利用find和awk查找文件

风行水上 @ 2011-09-05 16:32:13
标签:

    命令find本身就可以用来查找文件。但如果查询条件略显复杂的话,事情就没那么简单了。

    比如,要查找当前目录下既包含字符串"abc",又包含字符串"def"的文件,可以用下面的命令:

    find . -type f -exec \
      awk '/abc/ {fa=1} /def/ {fb=1} fa && fb {print FILENAME; exit;}' {} \;
    

    要查找当前目录下既包含字符串"abc",又不包含字符串"def"的文件,可以稍作修改如下:

    find . -type f -exec \
      awk '/abc/ {fa=1} /def/ {fb=1} END {if(fa && ! fb) print FILENAME}' {} \;
    

    理论上,这可以处理任何逻辑了。

    标签:

      分享到:
      comments powered by Disqus

      25/28ms