[linux] het zit er wel in, maar `grep` haal het er niet uit

Geert Stappers stappers op stappers.nl
Vr Jun 19 11:31:48 CEST 2020


In-Reply-To: <CALUn2Lb0S-FszY7uFnmDb4SQvy9Eyw_c=wRZ6rRUhGTWeewvXQ op mail.gmail.com>
Previous-Subject: Re: [linux] Linux Verzamelmail, Volume 46, Nummer 10

On Fri, Jun 19, 2020 at 10:32:21AM +0200, Jan Paul Smit wrote:
> Beste Linux-mensen,
> 
> In een vorige mail schreef Daniel von Asmuth:
> 
> > >     https://wiki.debian.org/FullTextSearch
> > >     https://www.linuxlinks.com/desktopsearchengines/
> > >     https://www.linuxuprising.com/2019/05/drill-new-desktop-file-search-utility.html
> > >     https://linuxhint.com/best-se
> 
> 
> Ik heb de suggesties bekeken, maar dit is nog te moeilijk voor mij en ik
> heb op dit moment niet de tijd om me er heel erg in te verdiepen.
> 
> Bovendien gaat het mij eigenlijk heel eenvoudig om zo nu en dan mijn –
> voornamelijk Word 97 – documenten in mijn map Documenten op een bepaald
> woord te doorzoeken, als ik er niet uit kom met zoeken op een woord(deel)
> in de bestandsnaam.
> 
> In mijn onschuld dacht ik dat het om een eenvoudig stukje code zou gaan,
> maar uit jullie reacties begrijp ik dat het ingewikkelder ligt.
 
Mijn inziens is het in de categorie weten hoe een mes vast te houden.
Of wat moderner: Weten hoe niet jezelf te branden aan een soldeerbout.


> Ook de suggestie van Daniel von Asmuth
> 
> “Probeer eens:
>         grep -r -i -H -s fiets /home/jan-paul/Documenten
>> 
> heb ik uitgeprobeerd, maar werkte bij mij niet.

De `grep -r -i -H -s fiets /home/jan-paul/Documenten` van Daniel [1]
is de oorspronkelijke `grep -r -i  fiets Documenten` van Jan-Paul.

 
> Ik gebruik de code ‘ | cut -d: -f1’ om een overschot aan tekst in rtf-,
> txt- en html-bestanden kwijt te raken, maar wel het pad te behouden.
> 
> zgrep heb ik ook uitgeprobeerd in plaats van grep; geen resultaat.
> 
> Toch is het merkwaardige dat grep sommige Word-documenten met een een
> bepaald zoekwoord wel op de lijst zet en andere Word-documenten met
> hetzelfde zoekwoord niet.
> 
> Ik heb van alles uitgeprobeerd:
> 
> *Resultaten*
> 
> = Er zijn geen aanwijzingen te vinden in Ubuntu/Bestanden bij
> ‘Eigenschappen’ en ook niet in LibreOffice bij Bestand/Eigenschappen of bij
> Extra/Opties die een verklaring kunnen geven. Bijvoorbeeld een andere
> eigenaar, of andere naam/groep.
> 
> = Het heeft niet te maken met de grootte van het Word-document, niet met
> hoe lang geleden het document aangemaakt is en ook niet met mijn vorige of
> eervorige computer.
> 
> = Als ik een oud Word-document dat eerst wel reageerde op een bepaalde
> zoekopdracht nu opnieuw bewerk in LibreOffice en opnieuw bewaar als
> Word-document, pikt grep het daarna niet meer op met dezelfde zoekopdracht.
> 
> = Nieuwe Word-documenten die ik net aangemaakt heb in LibreOffice reageren
> niet op zoekopdrachten.
> 
> = Als ik een Word-document dat niet reageert op een bepaalde
> grep-zoekopdracht bewaar als txt-bestand of rtf-bestand of html-bestand
> reageert dat wel op de betreffende grep-zoekopdracht.
> 
> *Mogelijke oplossing?*
> 
> Mijn vermoeden is nu dat in de onzichtbare tekst helemaal aan het begin van
> een Word-document (meta data?) soms wel en soms niet een bepaalde code of
> string staat die grep verhindert het document door te zoeken.
> 
> Als dat vermoeden klopt, zou het probleem opgelost kunnen worden als grep
> de onzichtbare tekst overslaat. Is er misschien een parameter die ik aan
> grep toe kan voegen die grep kan dwingen de onzichtbare tekst in
> Word-documenten over te slaan?
> 
> Geert schreef: “Een reden om de manual van grep te raadplegen  `man grep  #
> q voor Quit`”
> 
> Ik heb geprobeerd een overzicht te krijgen van de commando’s van grep te
> krijgen door deze regel in het Terminalvenster te plaatsen, maar dat werkt
> niet.

Sorry voor de te compacte `man grep  # q voor Quit`. Nieuwe poging:

man grep

in terminalvenster intypen plus "enter".  Je hebt dan handleiding
(manual page) van `grep`. Cursortoetsen zullen werken.  Om het
manual_page_leesprogramma te verlaten heb je de toets  'q' nodig.
Die q komt van het engelse  Quit.


 
> Op internet vond ik een grep-handleiding:
> https://www.gnu.org/software/grep/manual/grep.html#Generic-Program-Information
> 
> Helaas is die ook te moeilijk voor mij. Ik heb *-a* , *-z* en *-R *toegevoegd
> aan mijn grep opdrachten, maar zonder resultaat.
> 
> ‘Hoofdstuk 2.1.6 File and Directory Selection’ is misschien de juiste plek
> om verder te zoeken. Er staat bijvoorbeeld: “By default, type is ‘binary’,
> and grep suppresses output after null input binary data is discovered, and
> suppresses output lines that contain improperly encoded data. When some
> output is suppressed, grep follows any output with a one-line message
> saying that a binary file matches.”
> 
> Nu staat in mijn lijst van hits van een grep-zoekactie vóór de
> doc-bestanden telkens: “Binair bestand”
> 
> Maar goed, ik kom niet verder, want ik heb te weinig achtergrondkennis.
> 
> Kan iemand mij verder helpen?

Weet dat meer weten ook bekend dat er veel meer is wat je niet weet.


Je weet nu dat met `grep` een string[2] gevonden kan worden.
Maar de string[3] moet er dan wel zijn.

OK je weet dat de string wel in een document staat
en dat `grep` die niet vindt.

Het betekend dat de string op een andere manier in het document staat.

Je hebt dan ander programma nodig om de string te vinden.

Indien het document "compressed text" is, zal het met `zgrep` lukken.

Voor  .odt[4]  meen ik ooit programma `oofind` gezien te hebben.
Maar ik vind die "tool" niet terug. Onderweg vond ik
wel https://askubuntu.com/questions/938834/grep-for-text-in-odt-or-doc-files

Voor bestanden in een Microsoft formaat heb ik geen tijd[5].

 
> Met vriendelijke groeten, Jan Paul


Groeten
Geert Stappers

Voetnoten:
[1] Ja, het goed bedoelde advies van Daniel is best wel een slecht advies
    En ja, dat komt vaker voor ...
[2] tekenreeks
[3] sliert van tekens
[4] Open Document Text, een standaard file formaat
[5] Zijn mijn tijd niet waard, te veel wildgroei. Bewuste wildgroei die
    er voor zorgde dat als je meldde "Hey, ik kan jouw document niet
    lezen" dat je dan "Ja wij zijn best wel genaaid. Ik weet niet hoe
    ik in een ander formaat mijn document moet zetten. Weet je wat
    jij koopt ook de nieuwste versie van Microsoft Office. Jij kunt dan
    mij een document opsturen wat ik niet kan lezen omdat mijn versie MS
    Office te oud is. Laten we elkaar naaien." 
[Algemeen] Een passend Subject wordt erg op prijs gesteld
 

Silence is hard to parse


Meer informatie over de Linux maillijst