Odpowiedzi:
Z Cygwin (lub dostępem do komputera z systemem Linux) możesz
antiword file.doc | grep "my phrase"
lub
catdoc file.doc | grep "my phrase"
Istnieje wiele konwerterów formatu plików wiersza polecenia, które umożliwiają grep w podobny sposób.
Rozwiązaniem czysto w programie Word może być Ctrl + F (Znajdź), a następnie Znajdź wszystko - jednak nie jestem pewien, czy wszystkie wersje MS Word mają przycisk Znajdź wszystko .
catdoc
segfaults na każdym .doc
/ .docx
pliku, który mu podam, i antiword
po prostu mówi mi, że mój dokument „nie jest dokumentem Word”. Czy znasz jakieś inne opcje?
docx2txt
istnieje w repozytoriach Debiana - może działać. Zajrzałbym również do narzędzia do konwersji formatu wiersza poleceń OpenOffice / LibreOffice (unoconv), które można by wykorzystać w tym samym celu.
Wiem, że to brzmi prymitywnie, ale co powstrzymuje cię przed zapisaniem pliku jako .txt, a następnie rozerwaniem go na części według własnych upodobań.
Co oznacza „linia” w kontekście programu Word? Wyświetlany wiersz, który zmienia się, jeśli robisz coś z formatowaniem strony? Akapit? Coś innego?
Za pomocą funkcji znajdowania i zamieniania programu Word można wykonywać wiele czynności, w tym zmieniać formatowanie i inne nieoczywiste rzeczy, ale wszystkie z nich będą działać tylko na samym tekście find-what, a nie na otaczającym tekście.
Nie mam wystarczającej liczby przedstawicieli do skomentowania, ale widzę, że omawiany jest problem doc vs docx, więc każdy, kto goni za wątkiem (tak jak ja), może uznać to za pomocne.
Nie potrzebujesz specjalnego narzędzia do plików docx. docx to spakowane pliki XML.
Aby wyodrębnić i usunąć XML, wypróbuj coś opartego na
unzip -p "*.docx" word/document.xml | sed -e 's/<[^>]\{1,\}>//g; s/[^[:print:]]\{1,\}//g'
Szybkie, bezpłatne, otwarte i wieloplatformowe rozwiązanie: https://github.com/phiresky/ripgrep-all