Al Lelopath Asked: 2020-09-24 07:17:20 +0800 CST2020-09-24 07:17:20 +0800 CST 2020-09-24 07:17:20 +0800 CST 是否可以在文件系统上的所有 *.xlsx 文件中搜索某个字符串? 772 是否可以在文件系统上的所有 *.xlsx 文件中搜索某个字符串?我安装了 LibreOffice。 Ubuntu 20.04.1 LTS libreoffice search 1 个回答 Voted Best Answer singrium 2020-09-24T07:43:32+08:002020-09-24T07:43:32+08:00 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" 信用: 如何在 Linux 上找到包含特定文本的所有文件? 编辑: 正如评论中提到的@steeldriver,我注意到这种方法不适用于 .xlsx 文件。 但是,还有另一种使用xlsxgrep package的方法。 您可以通过运行下载它: pip install xlsxgrep # or pip3 install xlsxgrep 要使用它,请运行: xlsxgrep "PATTERN" -H -N --sep=";" -r /path/to/folder
Grep是你最好的朋友!-r
或者-R
是递归的(也就是说该r
选项是惰性的;首先遍历深度,而不是在第一个目录之后停止,而R
贪婪;将正确遍历整个树)-n
是行号-w
代表匹配整个单词。-l
(小写 L)可以添加以仅给出匹配文件的文件名。您可以添加一些标志以使事情变得更容易。
--include
用于搜索具有所选扩展名的文件中的模式:--exclude
:这将排除搜索所有以某些扩展名结尾的文件:--exclude-dir
: 用于排除一个或多个目录。例如,这将排除目录 dir1/、dir2/ 以及所有匹配 *.dst/ 的目录:信用: 如何在 Linux 上找到包含特定文本的所有文件?编辑:
正如评论中提到的@steeldriver,我注意到这种方法不适用于 .xlsx 文件。
但是,还有另一种使用xlsxgrep package的方法。
您可以通过运行下载它:
要使用它,请运行: