无需打开 ODT 文档即可进行搜索?

无需打开 ODT 文档即可进行搜索?

假设我有 2000 个 .ODT 文件。它们的名称是随机数。我该如何搜索,比如说“价格表”?如何找到我需要的文档,而不用逐个打开所有文件并检查它是否正确?

是否有某种程序无需打开文档即可搜索文档中的单词?

答案1

这适用于 openoffice 可以读取的任何内容;我只在这种情况下想要 odt:

find -name \*.odt -exec sh -c 'unoconv --stdout -f text "{}" | grep -i string_to_search_for' \;

答案2

另一种方法是雷科尔 安装 Recoll。一旦索引了您的文件,它就会很快找到匹配的文件。还可以在 ODS、ODP 和 PDF 中搜索。效果很好。

答案3

您需要一个全文索引解决方案,它有一个过滤器来支持索引这些文件的全文。

其中一个选项是使用trackerUbuntu 中的软件包。您需要安装trackertracker-miner-fs安装,并且可能还需要tracker-gui搜索工具 UI。

答案4

使用 apt install 安装 antiword 和 odt2txt。

此代码将在目录中的所有 .doc 和 .odt 文件中搜索可能包含空格的给定字符串:

dgrep确保使其可执行并放入您的路径中!

#!/bin/bash

#USE: dgrep   this text

#grep for doc files, using antiword
#grep for odt files, using odt2txt

#Run in a given directory with doc / odt files

#string=$1
string=$@

for i in *.doc*
do
    antiword $i | grep "$string" > found
    if [ -s found ] 
    then
     echo "(("$i"))"
     more found
    fi
done

for j in *.odt
do
    odt2txt $j | grep "$string" > found2
    if [ -s found2 ] 
    then
     echo "(("$j"))"
     more found2
    fi
done

/bin/rm found found2 

相关内容