Grep w Microsoft Word?

10

Grep w Microsoft Word?

Chciałbym wyciągnąć wszystkie wiersze z danego ciągu z dokumentu tekstowego. W świecie unix ... grep robi to bez problemu. Windows jest dla mnie mniej niż oczywisty.

fretje
źródło

Odpowiedzi:

10

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 .

chronos
źródło
2
Kiedy zobaczyłem tytuł pytania, pomyślałem: „Ha! Byłoby fajnie, prawda”. Nigdy więcej nie powinienem lekceważyć programistów GNU.
Phoshi,
Najnowsza wersja catdocsegfaults na każdym .doc/ .docxpliku, który mu podam, i antiwordpo prostu mówi mi, że mój dokument „nie jest dokumentem Word”. Czy znasz jakieś inne opcje?
detly
Nic, z czego korzystałem ... Szybkie wyszukiwanie pokazuje, że docx2txtistnieje 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.
chronos
3

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ń.

Wieża
źródło
2
Posiadanie ich do tego setki jest właśnie tym.
tchrist 30.01.2013
1

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.

Marta
źródło
grep ma jednak to wyrażenie regularne!
Phoshi,
1

Istnieje obsługa dokumentów MS - Word, PowerPoint, Excel - w CRGREP, który opracowałem jako bezpłatne narzędzie typu open source. Pomaga także w wyszukiwaniu innych trudnych rzeczy, takich jak tabele bazy danych, obrazy, audio, archiwa, pliki PDF i ich kombinacje. Baw się dobrze.

Craig
źródło
0

PowerGREP zrobi to za Ciebie i szybko - ale nie za darmo. Moim zdaniem jest to warte każdego grosza. Ponadto istnieje 30-dniowy bezpłatny okres próbny.

Zrzut ekranu z wyszukiwania PowerGREP w pliku Word

Tim Pietzcker
źródło
0

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'

z linii poleceń fu

Fafhrd
źródło