Grep no Microsoft Word?

10

Grep no Microsoft Word?

Eu gostaria de extrair todas as linhas com uma determinada sequência de caracteres de um documento do Word. No mundo unix ... grep faz isso sem falhas. O Windows é menos que óbvio para mim.

fretje
fonte

Respostas:

10

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 .

Chronos
fonte
2
Quando vi o título da pergunta, pensei "Ha! Isso seria legal, não seria"? Nunca mais devo subestimar os programadores do GNU.
Phoshi
A versão mais recente do catdocsegfaults em todos os arquivos .doc/ .docxque eu dou e antiwordapenas diz que meu documento "não é um documento do Word". Você conhece outras opções?
detly
Nada que eu usei ... A pesquisa rápida mostra que docx2txtexiste 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.
Chronos
3

Eu sei que isso parece primitivo, mas o que está impedindo você de salvar o arquivo como .txt e, em seguida, rasgá-lo ao seu gosto.

Torre
fonte
2
Ter centenas deles para fazer isso, é o que.
tchrist
1

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.

Martha
fonte
grep tem esse amor de regex!
Phoshi #
1

Há suporte para documentos do MS - Word, PowerPoint, Excel - no CRGREP, que desenvolvi como uma ferramenta de código- fonte livre. Ele também recebe outras coisas difíceis de pesquisar, como tabelas de banco de dados, imagens, áudio, arquivos, PDF e combinações deles. Diverta-se.

Craig
fonte
0

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.

Captura de tela da pesquisa do PowerGREP em um arquivo do Word

Tim Pietzcker
fonte
0

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'

da linha de comando fu

Fafhrd
fonte