Linux查找给定多个字符或字符串的文件

时间:2016-09-12 16:32:11

标签: linux terminal grep ls

我想查找包含字符串的文件,例如report_8495str1和扩展名.dat。该目录有大量的文件,我想在文件名中找到包含这些字符串的文件。我没有检查文件的内部内容,只是文件名。有什么好办法呢?

使用ls *...*...*...*有效,但我想知道是否有任何复杂的方法可以做到这一点。

1 个答案:

答案 0 :(得分:0)

嗯,这是一种方法,但我不会称之为复杂。我会称之为狡猾而有用。我使用搜索模式相当多。它也可以用正则表达式来完成,但有点令人困惑。无论如何,请看下面的示例:

 [jesse@localhost test]$ ls -l
total 0
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:33 file8495
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:52 file8495.dat
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:52 file8495.txt
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:33 mikereport_2
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:52 mikereport_2.dat
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:52 mikereport_2.txt
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:32 myreport_1
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:52 myreport_1.dat
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:52 myreport_1.txt
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:36 mystr1
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:52 mystr1.dat
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:52 mystr1.txt
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:35 test8495
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:52 test8495.dat
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:52 test8495.txt
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:33 testreport_template
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:52 testreport_template.dat
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:52 testreport_template.txt
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:36 thestr1test
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:52 thestr1test.dat
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:52 thestr1test.txt
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:32 tonyreport_1
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:52 tonyreport_1.dat
-rw-rw-r--. 1 jesse jesse 0 Sep 12 12:52 tonyreport_1.txt
[jesse@localhost test]$ 
[jesse@localhost test]$ for pattern in report_ 8495 str1; do  echo "Searchng for pattern: $pattern"; find . -name "*${pattern}*.dat"; echo "-------"; done
Searchng for pattern: report_
./mikereport_2.dat
./tonyreport_1.dat
./testreport_template.dat
./myreport_1.dat
-------
Searchng for pattern: 8495
./file8495.dat
./test8495.dat
-------
Searchng for pattern: str1
./mystr1.dat
./thestr1test.dat
-------
[jesse@localhost test]$