Python: 在文件名中搜索字符串
Python: Search for String in Filenames
我一直在尝试在根文件系统中搜索某个字符串(在文件名中间或任何地方)。我阅读了有关 grep 的信息,并在这里尝试了这段代码:
grep -rnw /home/pi/music -e "Maroon"
奇怪的事情发生了,有三个文件名中有 Maroon(相同的大小写和间距),但在终端中只显示两个。任何想法为什么会这样?还有其他更简单的方法吗?
我还想说我看到了这个 Whosebug post here,但我无法让它工作。我认为那是针对特定文件名的,而我想进行一般搜索。
非常感谢所有帮助!
grep
读取磁盘上的文件,并搜索单词 "Maroon"。
我认为你想要的(搜索文件名时)是:
find /home/pi/music -iname "*maroon*"
这将显示所有名为 *maroon*
的文件(不区分大小写)。如果您想要区分大小写,请查看 -name
.
man find
将列出 find
的所有选项。
搜索与特定模式匹配的文件的正确(或更常见)方法是使用 find
命令,如下所示:
find /home/pi/music -type f -iname "*maroon*" -ls
type
,将搜索限制为特定类型,在本例中 f
用于常规文件(因此它将忽略目录、管道、套接字等)
iname
不区分大小写的名称搜索
ls
列出找到的文件。
grep
用于在个文件中搜索匹配内容。
您想使用 find 来搜索文件名
find /home/pi/music -depth 1 -name \*Maroon\*
这将找到名称包含该字符串的文件。您需要引用文件名,因此 shell 不会将其通配。 -depth 1 所以你只搜索当前目录
我一直在尝试在根文件系统中搜索某个字符串(在文件名中间或任何地方)。我阅读了有关 grep 的信息,并在这里尝试了这段代码:
grep -rnw /home/pi/music -e "Maroon"
奇怪的事情发生了,有三个文件名中有 Maroon(相同的大小写和间距),但在终端中只显示两个。任何想法为什么会这样?还有其他更简单的方法吗?
我还想说我看到了这个 Whosebug post here,但我无法让它工作。我认为那是针对特定文件名的,而我想进行一般搜索。
非常感谢所有帮助!
grep
读取磁盘上的文件,并搜索单词 "Maroon"。
我认为你想要的(搜索文件名时)是:
find /home/pi/music -iname "*maroon*"
这将显示所有名为 *maroon*
的文件(不区分大小写)。如果您想要区分大小写,请查看 -name
.
man find
将列出 find
的所有选项。
搜索与特定模式匹配的文件的正确(或更常见)方法是使用 find
命令,如下所示:
find /home/pi/music -type f -iname "*maroon*" -ls
type
,将搜索限制为特定类型,在本例中f
用于常规文件(因此它将忽略目录、管道、套接字等)iname
不区分大小写的名称搜索ls
列出找到的文件。
grep
用于在个文件中搜索匹配内容。
您想使用 find 来搜索文件名
find /home/pi/music -depth 1 -name \*Maroon\*
这将找到名称包含该字符串的文件。您需要引用文件名,因此 shell 不会将其通配。 -depth 1 所以你只搜索当前目录