Инструмент командной строки для поиска файла DOCX под MS DOS или Cygwin - PullRequest
2 голосов
/ 06 января 2012

Существует ли инструмент командной строки, который может искать файл docx в ms dos или cygwin?

Я пробовал grep, он не работает с docx, а нормально работает с txt файлом.

Я знаю, что всегда могу конвертировать docx в txt 1st, а затем искать, используя grep, но мне интересно

есть ли командный инструмент, который я могу искать прямо в командной строке?

Спасибо

Ответы [ 4 ]

2 голосов
/ 20 января 2014

Я написал небольшой скрипт 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 голос
/ 21 января 2012

После того, как я попробовал материал, я нашел, что самый простой способ сделать это - использовать утилиту linux для пакетного преобразования всех файлов docx в файлы txt, а затем легко выполнить grep с этими файлами txt.

0 голосов
/ 21 января 2012

Вы можете использовать zipgrep, который вызывает grep для всех файлов zip-архива (который является файлом docx).Вы можете быть разочарованы результатом, поскольку он возвращает необработанное содержимое файлов XML, содержащих как текст, так и теги XML.

0 голосов
/ 06 января 2012

zgrep может работать на вас?Обычно это работает в документах OpenOffice, и оба представляют собой сжатые архивы, содержащие XML:

zgrep "some string" *.xdoc

У меня нет файлов .xdoc для проверки этого, но в теории это должно работать ...

...