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

标签 linux terminal grep ls

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

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

最佳答案

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

 [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]$ 

关于Linux 查找给定多个字符或字符串的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39454879/

相关文章:

c# - 将 ASP.Net Web Forms 项目部署到 Fedora 24

linux - 用于查找 5 个最新 .jar 文件的 shell 脚本,将它们呈现给用户,获取输入并使用 ssh 进行复制

linux - Wayland 上的 libinput-gestures : can't get 'super' key

ubuntu - 使用终端确定具有子树的树的总大小(以 Kb 为单位)

linux - 如何连续备份 linux gnome 终端日志?命令和该命令的输出

svn - 如何查找/搜索/grep SVN 存储库历史记录?

c++ - 使用 C/C++ 设置 Linux IP

haskell - `ansi-terminal` 如何在Haskell中获取光标位置

bash - 使用 find、grep、sed 的 bash 脚本中的段错误

xml - 使用 Unix 命令行删除 XML 节点