Hallo Forum,
ich habe 2 Fragen an die Bashprogrammierer unter Euch:
1. Wie kann ich bitte mit dem Programm "grep" ( oder einem anderen geeigneten Prog ) einen String mit der Syntax
BlahblahBlahblahBlahblahAAAAAAAAAAA=ZZZZZ&BBBBBBBBlahblahBlahblahBlahblahBlahblah
aus einem Text Blahblah extrahieren, wobei
- Der String im Text öfters vorkommt
- A und B immer gleich sind
- die Z's Ziffern von 0-9 sein können
- die Z#s immer zwischen den Zeichen "=" und "&" liegen
- die Menge der Z's variieren kann .
2. Genau diesen String möchte ich in eine Datei schieben und nicht die ganze Zeile. Wie geht das bitte ?
Grep sucht soweit ich weiss immer ganze Zeilen mit passendem Muster.
Dank euch schon mal
Gruß root2root
bash grep zahlenkolonnne in string
Re: bash grep zahlenkolonnne in string
hi
Ich glaube das tool awk ist was du suchst.
kann ich aber nicht viel zu sagen.
hier kannst ne beispiel finden::
http://debianforum.de/forum/viewtopic.php?f=34&t=89135
viel erfolg!
Ich glaube das tool awk ist was du suchst.
kann ich aber nicht viel zu sagen.
hier kannst ne beispiel finden::
http://debianforum.de/forum/viewtopic.php?f=34&t=89135
viel erfolg!
Re: bash grep zahlenkolonnne in string
Hallo,
Deine Beschreibung des Stringmusters verstehe ich nicht. Was heißt z.B. "A und B immer gleich sind"? Klingt für mich so, als seien die eh bekannt und man müsse sich nicht um die kümmern. Wie auch immer, den Teil mit den Ziffern bekommst Du z.B. mit dem Befehl
Das -o sorgt dafür, dass nur der passende Teil der Zeile ausgegeben wird. Bitte erkläre den Rest des Musters genauer, vielleicht an ein paar Beispielen.
€: Vielleicht tut
was Du willst. Bei einer /tmp/test mit Inhalt
lautet die Ausgabe
Deine Beschreibung des Stringmusters verstehe ich nicht. Was heißt z.B. "A und B immer gleich sind"? Klingt für mich so, als seien die eh bekannt und man müsse sich nicht um die kümmern. Wie auch immer, den Teil mit den Ziffern bekommst Du z.B. mit dem Befehl
Code: Alles auswählen
egrep -o '=[0-9]*&' /pfad/zur/datei
€: Vielleicht tut
Code: Alles auswählen
grep -o '\([a-z]\)\1*=[0-9]*&\([a-z]\)\2*' /tmp/test
Code: Alles auswählen
ddasfssss=342&ddddsafsadffffff=343422&eeeeeesaf=sdaf2&
Code: Alles auswählen
ssss=342&dddd
ffffff=343422&eeeeee
Re: bash grep zahlenkolonnne in string
Hallo tantris
Dieser Text ist ebenfalls Bestandteil des Suchmusters, so daß das der Befehl Suchmuster eventuell so
# egrep -o 'Ich benötige heute Menge =[0-9]*&kg Birnen' /pfad/zur/datei
aussehen würde ? Stimmt das so ?
Danke und Gruß
root2root
soll heissen daß die exemplarisch angeführten A- und B- Ketten immer den gleichen Text "enthalten", aber Text in A anders lautet als B. Beispiel : Inhalt A-Kette ="Ich benötige heute Menge =". Inhalt B-Kette : "&kg Birnen".A und B immer gleich sind"? Klingt für mich so, als seien die eh bekannt
Dieser Text ist ebenfalls Bestandteil des Suchmusters, so daß das der Befehl Suchmuster eventuell so
# egrep -o 'Ich benötige heute Menge =[0-9]*&kg Birnen' /pfad/zur/datei
aussehen würde ? Stimmt das so ?
Danke und Gruß
root2root
Re: bash grep zahlenkolonnne in string
Ja, das sollte funktionieren, probiere es doch einfach aus.