用于在ms dos或cygwin下搜索docx文件的命令行工具

时间:2012-01-06 12:08:13

标签: linux search command-line docx

是否有命令行工具能够在ms dos或cygwin下搜索docx文件?

我尝试过grep,在使用txt文件时,它不能与docx一起工作。

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

是否有可以直接在命令行下搜索的命令工具?

由于

5 个答案:

答案 0 :(得分:2)

我写了一个小的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

来自您要扫描的任何文件夹。

答案 1 :(得分:1)

在尝试了这些东西后,我发现最简单的方法是使用linux实用程序将所有docx文件批量转换为txt文件,然后轻松地使用这些txt文件进行grep。

答案 2 :(得分:0)

zgrep可能对你有用吗?它通常适用于OpenOffice文档,并且都是包含XML的压缩存档:

zgrep "some string" *.xdoc

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

  

将其另存为docfind.sh,您可以调用

可能需要告知像我这样的新手,要使.sh脚本可以从任何目录执行,它必须具有executable property set并位于/ usr / bin或{{3}中的其他位置}。

我能够在Linux Mint中设置nemo文件管理器,以从任何文件夹的上下文菜单(Path)中打开终端。