是否可以在文件系统上的所有 *.xlsx 文件中搜索特定的字符串?

是否可以在文件系统上的所有 *.xlsx 文件中搜索特定的字符串?

是否可以在文件系统上搜索所有 *.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"
    

信用: 如何在 Linux 上查找所有包含特定文本的文件?

编辑:
作为@steeldriver在评论中提到,我注意到此方法不适用于.xlsx 文件。

不过,还有另一种方法xlsxgrep 包
您可以通过运行以下命令下载:

pip install xlsxgrep
# or
pip3 install xlsxgrep

要使用它,请运行:

xlsxgrep "PATTERN" -H -N --sep=";" -r /path/to/folder

相关内容