Python:在文件名中搜索字符串

时间:2015-03-08 04:30:16

标签: shell raspberry-pi

我一直在尝试在根文件系统中搜索某个字符串(在文件名或中间的任何位置)。我读到了grep,我在这里尝试了这段代码:

grep -rnw /home/pi/music -e "Maroon"
发生了一些奇怪的事情,其中​​有三个带有Maroon的文件名(大小写和间距相同),但只有两个出现在终端中。任何想法为什么会这样?还有其他更简单的方法吗?

我还想说我看到了这个StackOverflow帖子here,但我无法让它发挥作用。我相信这是专注于特定的文件名,而我想进行一般搜索。

非常感谢所有帮助!

3 个答案:

答案 0 :(得分:0)

grep读取磁盘上的文件,并搜索单词" Maroon"。

我认为你想要的(搜索文件名时)是:

find /home/pi/music -iname "*maroon*"

这将显示名为*maroon*的所有文件(不区分大小写)。如果您想要区分大小写,请查看-name

man find

将列出find的所有选项。

答案 1 :(得分:0)

在匹配特定模式时搜索文件的正确(或更常见)方式是使用find命令,如下所示:

find /home/pi/music -type f -iname "*maroon*" -ls
  • type,将搜索限制为特定类型,在这种情况下f用于常规文件(因此它将忽略目录,管道,套接字等)

  • iname不区分大小写的名称搜索

  • ls列出找到的文件。

grep用于在文件中搜索以匹配内容。

答案 2 :(得分:-1)

您想使用find来搜索文件名

find /home/pi/music -depth 1 -name \*Maroon\*

这将找到名称包含字符串的文件。你需要引用文件名,所以shell不会将其全局化。 -depth 1所以你只搜索当前目录