Toon posts:

[Linux] GREP probleempje

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een scriptje om uit textbestanden bepaalde delen te filteren en in een mySQL db te stoppen via een shell script nu lukken sommige dingen nog wel die maar uit 1 regel bestaat, maar nu kom ik op het probleem. In het bestand staat informatie zoals installed packages van een remote Solaris bak dus als ik nu een grep uitvoer om uit te vinden welke packages zijn geinstalleerd krijg ik bij de grep een stuk of wat regels output..... nu is mijn vraag hoe kan ik deze sepereren zonder op de packagenaam specifiek te greppen omdat ik van te voren niet weet welke packages zijn geinstalled op de machines?

grep output :
scc
SMCbash
SMClibgcc
SMCossh
SMCossld
SMCprngd
SMCsudo
SMCwget
SMCzlib

deze bovenstaande output wil ik dus regel voor regel in de db

  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
code:
1
2
3
4
5
6
7
IFS="
"
output=$(grep iets bestand.txt)
for i in $output
do
    echo Got: "$i"
done

"He took a duck in the face at two hundred and fifty knots."


Verwijderd

code:
1
2
3
for REGEL in `doe|iets|en|grep output`; do
        doe iets met $REGEL
done

offtopic:
_Squatt_ was me voor

[ Voor 19% gewijzigd door Verwijderd op 06-09-2004 14:52 ]


Verwijderd

Topicstarter
_Squatt_ schreef op 06 september 2004 @ 14:50:
code:
1
2
3
4
5
6
7
IFS="
"
output=$(grep iets bestand.txt)
for i in $output
do
    echo Got: "$i"
done
for i in $output < dit gaat dus elke regel bij langs ?

p.s. IFS="" < hoezo dit erbij ?

  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
Verwijderd schreef op 06 september 2004 @ 15:14:
for i in $output < dit gaat dus elke regel bij langs?
Dit geeft $i de waarde van elk veld in $output, en voert dan de body van de loop uit (het stuk tussen 'do' en 'done').
p.s. IFS="" < hoezo dit erbij ?
IFS is de Internal Field Separator. Deze variabele gebruikt bash om een rij tekens te verdelen in velden. Standaard wordt er verdeeld op spaties, tabs en newlines. Ik zet IFS nu op alleen een newline, zodat je geen problemen krijgt met packages die een spatie bevatten (die kans is niet zo groot, maar je weet nooit).

"He took a duck in the face at two hundred and fifty knots."


Verwijderd

Topicstarter
hardstikke bedankt _Squatt_ ben er uitgekomen ik heb hem uiteindelijk een beetje aan moeten passen omdat ik uit 1 regel meerdere fields moest hebben maar dat geloof je vast wel

probleem dus opgelost slotje mag dr op
Pagina: 1