是否可以在文件系统上搜索所有 *.xlsx 文件以查找特定字符串?我已安装 LibreOffice。
Ubuntu 20.04.1 LTS
答案1
Grep 是你最好的朋友!
grep -rnwl '/path/to/somewhere/' -e 'pattern'
-r
或者-R
是递归的(需要提到的是,r
选项是懒惰的;遍历深度优先,然后在第一个目录后停止,而R
选项是贪婪的;将正确遍历整个树)-n
是行号-w
代表匹配整个单词。-l
可以添加(小写 L)来仅给出匹配文件的文件名。
您可以添加一些标志以使事情变得更容易。
--include
用于在具有所选扩展名的文件中搜索模式:grep --include=\*.{xlsx,docx} -rnw '/path/to/somewhere/' -e "pattern"
--exclude
:这将排除搜索以某些扩展名结尾的所有文件:grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern"
--exclude-dir
:用于排除一个或多个目录。例如,这将排除目录 dir1/、dir2/ 以及所有与 *.dst/ 匹配的目录:grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"
编辑:
作为@steeldriver在评论中提到,我注意到此方法不适用于.xlsx 文件。
不过,还有另一种方法xlsxgrep 包。
您可以通过运行以下命令下载:
pip install xlsxgrep
# or
pip3 install xlsxgrep
要使用它,请运行:
xlsxgrep "PATTERN" -H -N --sep=";" -r /path/to/folder