命令行工具来searchms dos或cygwin下的docx文件

有没有一个命令行工具,能够searchMS DOS或Cygwin下的DOCX文件?

我已经尝试了grep,而不是与docx一起工作,而与txt文件正常工作。

我知道我总是可以将docx转换为txt 1st,然后使用grep进行search,但是我想知道

有没有一个命令工具,我可以直接在命令行下search?

谢谢

我写了一个小bash脚本,这将帮助你:

#!/bin/bash export DOCKEY="$@" function searchdoc(){ VK1=$(cat "$@" | grep -i "$DOCKEY" | wc -c) VK2=$(unzip -c "$@" | grep -i "$DOCKEY" | wc -c) let NUM=$VK1+$VK2 if [ "$NUM" -gt 0 ]; then echo $NUM occurences in $@ echo opening file. gnome-open "$@" fi } export -f searchdoc echo searching for $DOCKEY ... find . -exec bash -c 'searchdoc "{}" 2>/dev/null' \; 

将其另存为docfind.sh并且可以调用

  $#> docfind.sh searchterm 

从任何你想扫描的文件夹。

zgrep可能会为你工作? 它通常在OpenOffice文档中工作,并且都是包含XML的压缩存档:

 zgrep "some string" *.xdoc 

我没有.xdoc文件来测试这个,但理论上它应该工作…

经过一番尝试,我发现最简单的方法是使用一个linux实用程序将所有docx文件批量转换为txt文件,然后用这些txt文件轻松地grep。

您可以使用zipgrep,它调用zip压缩文档(docx文件所在的文件)的所有文件。 但是,您可能会对结果感到失望,因为它会返回包含文本和XML标记的XML文件的原始内容。