Nieuws:

Ubuntu-NL weer online!

Na een periode van technische problemen en een overbelaste server zijn we eindelijk weer bereikbaar.
Samen met Hobbynet, onze sponsor en hostingpartner, hebben we een oplossing gevonden zodat alles weer soepel draait.

Bedankt voor jullie geduld en begrip. We hopen nu weer verder te gaan waar we gebleven waren.

Het team van Ubuntu-NL

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [opgelost] Bash - gevonden bestandsnaam opslaan in variable  (gelezen 1271 keer)

[opgelost] Bash - gevonden bestandsnaam opslaan in variable
« Gepost op: 2013/04/27, 14:58:57 »
L.S.

In een bash-script heb ik een actie ingebracht die een directory met (genummerde) tekstbestanden doorzoekt:
rcp=””
read woord
grep -i -z $woord *.txt
Hiermee krijg ik keurig de bestandsnaam (bijvoorbeeld 11.txt) en de betreffende bestandstekst op het scherm. Vervolgens wil ik de bestandsnaam die grep gevonden heeft opslaan in variabel rcp. Daar kom ik niet uit. Heeft iemand een oplossing?
Bvd.
« Laatst bewerkt op: 2013/04/27, 17:33:21 door Nick Lamar »

Re: Bash - gevonden bestandsnaam opslaan in variable
« Reactie #1 Gepost op: 2013/04/27, 15:15:50 »
rcp=$(grep -iz "$woord" *.txt)

Zie trouwens niet waarom je -z nodig hebt als je *.txt files gebruikt?

Citaat
     -Z, -z, --decompress
             Force grep to behave as zgrep.
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Re: Bash - gevonden bestandsnaam opslaan in variable
« Reactie #2 Gepost op: 2013/04/27, 15:57:08 »
Hier kan ik mee uit de voeten.
Wat betreft -z; ik heb gemerkt dat grep -z de line feed (nieuwe regel)  volgt van een txt-bestand. Zonder -z wordt de tekst geheel uitgevuld tot uiterst rechts en breken woorden verkeerd af.
Dank voor de oplossing!

NL

Re: Bash - gevonden bestandsnaam opslaan in variable
« Reactie #3 Gepost op: 2013/04/27, 17:26:09 »
Hmm, blijkbaar doen die flags andere dingen bij BSD grep en GNU grep.

Uit de manpage voor GNU grep:
Citaat
     -z, --null-data
             Treat the input as a set of lines, each terminated by a zero byte (the
             ASCII NUL character) instead of a newline. Like the -Z or --null option,
             this option can be used with commands like sort -z to process
             arbitrary file names.
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net