是否有命令行工具能够在ms dos或cygwin下搜索docx文件?
我尝试过grep,在使用txt文件时,它不能与docx一起工作。
我知道我总是可以将docx转换为txt 1st然后使用grep进行搜索,但我想知道
是否有可以直接在命令行下搜索的命令工具?
由于
答案 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)中打开终端。