Respostas:
Com Cygwin (ou acesso a uma máquina Linux), você pode
antiword file.doc | grep "my phrase"
ou
catdoc file.doc | grep "my phrase"
Existem muitos conversores de formato de arquivo de linha de comando disponíveis para grep de maneira semelhante.
A solução puramente in-Word pode ser Ctrl + F (Find) e, em seguida, Find All - no entanto, não tenho certeza se todas as versões do MS Word têm o botão Find All .
catdoc
segfaults em todos os arquivos .doc
/ .docx
que eu dou e antiword
apenas diz que meu documento "não é um documento do Word". Você conhece outras opções?
docx2txt
existe nos repositórios Debian - pode funcionar. Também examinaria o utilitário de conversão de formato de linha de comando OpenOffice / LibreOffice (unoconv), que poderia ser usado para o mesmo objetivo.
O que significa "linha" em um contexto do Word? A linha exibida, que muda se você fizer alguma coisa na formatação da página? O parágrafo? Algo mais?
Você pode fazer várias coisas com as funções de localizar e substituir do Word, incluindo alterar a formatação e outras coisas não óbvias, mas todas elas atuarão apenas no próprio texto de localização, não em qualquer texto ao redor.
O PowerGREP fará exatamente isso por você e rápido - mas não de graça. Vale cada centavo, porém, na minha opinião. Além disso, há uma avaliação gratuita de 30 dias.
Não tenho representante suficiente para comentar, mas eu posso ver esse problema doc vs docx discutido para que qualquer pessoa que esteja perseguindo o tópico (como eu era) possa achar isso útil.
Você não precisa de uma ferramenta especial para arquivos docx. docx são arquivos XML compactados.
Para extrair e remover o XML, tente algo baseado em
unzip -p "*.docx" word/document.xml | sed -e 's/<[^>]\{1,\}>//g; s/[^[:print:]]\{1,\}//g'
Solução rápida, gratuita, de código aberto e multiplataforma: https://github.com/phiresky/ripgrep-all