grep
Gabi
- webserver
Hallo,
Ich wüsste gerne wie ich mit grep unter debian arbeite.
Ich versteh das einfach nicht!
folgendes bsp.:
---------------------
Das ist haha ein text
Das ist hihi ein text
---------------------
ich möchte als Ausgabe "haha" und "hihi" bekommen. was muss ich dafür shell eingeben?
danke für jede Art von Hilfe!
Gabi
grep gibt üblicherweise immer ganze Zeilen aus. Du brauchst sowas wie
egrep -o "h[ai]h[ai]"
(-o ist dafür, dass nur die Treffer ausgegeben werden, egrep sucht nach regulären Ausdrücken).
Gruß, LX
Ok hab mich wohl zu blöd ausgedrückt.. möchte immer das was in der mitte steht
anfangabcende
anfangcdeende
anfangefgende
Ich habe schon so allerlei versucht und RAFFE es EINFACH NICHT.. das ist so kompliziert... aber auch grade für mein Problem habe ich noch kein Beispiel gesehen.
raus kommen soll bei diesem beispiel nun
abc
cde
efg
und das Suchmuster sieht jetzt wie aus?
vorallem verstehe ich bei grep nicht was ich wo maskieren muss da ja alles schon mal mit "" anfängt :-)
ich hab also folgendes schema in diversen varianten versucht egrep -o "^(anfang)(ende)$"
aber nie kam das passende raus :-(
Ggabi
Ok bin schon weiter:
grep -o 'anfang(.*)"ende'
aber ich möchte nur den INHALT sehen nicht den ganzen string noch
Also Ausgangspunkt ist
anfangabcende
anfang123ende
anfangasdende
suche nach grep -o 'fang(.*)"en'
bekomme
fangabcen
fang123en
fangasden
möchte aber
abc
123
asd
Gabi
Ok man muss noch mit cut zusammen arbeiten.. alles klar..
aber ich möchte nur den INHALT sehen nicht den ganzen string noch
Also Ausgangspunkt ist
anfangabcende
anfang123ende
anfangasdende
Sowas lös ich nicht mit "grep"s sondern mit sed:
Das ist jetzt mit Windows/Gnuwin32 sed getestet (mit type statt cat) aber so ähnlich sollte es unter Linux klappen; die EINFACHEN Hochkommata sind wichtig!
cat foo.txt | sed 's/anfang(.*)ende/\1/g'
Die Syntax "(...)" konstituiert dabei ein Teilmuster das in \1 abgelegt und dann ausgegeben wird.
Grüsse
Solkar