Nieuws:

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

Auteur Topic: [opgelost] Bash - gevonden bestandsnaam opslaan in variable  (gelezen 1188 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