bash ausgabe um- sortieren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
ren22

bash ausgabe um- sortieren

Beitrag von ren22 » 09.07.2016 15:33:25

Hallo,

ich stehe vor folgendem Problem,

in einer logdatei steht:
{DEPENDENCIES[@]}: mc[0]slang mc[1]glib2 mc[2]libssh2 glib2[0]libffi glib2[1]pcre libssh2[0]libgcrypt libgcrypt[0]libgpg-error
was ich aber bräuchte wäre folgende Ausgabe:
mc
mc[0]slang
mc[1]glib2
glib2[0]libffi
glib2[1]pcre
mc[2]libssh2
libssh2[0]libgcrypt
libgcrypt[0]libgpg-error
ich wäre sehr dankbar wenn mir jemand da weiter helfen könnte, aber bitte nur in bash

eggy
Beiträge: 3334
Registriert: 10.05.2008 11:23:50

Re: bash ausgabe um- sortieren

Beitrag von eggy » 09.07.2016 15:36:00

Reicht Leerzeichen gegen Zeilenumbruch tauschen? Dann

Code: Alles auswählen

 tr " " "\n" 

DeletedUserReAsG

Re: bash ausgabe um- sortieren

Beitrag von DeletedUserReAsG » 09.07.2016 15:37:44

Möglichkeit, die mir spontan in den Sinn kam (und ggf. verfeinert werden muss, je nach Umständen):

Code: Alles auswählen

$ echo {DEPENDENCIES[@]}: mc[0]slang mc[1]glib2 mc[2]libssh2 glib2[0]libffi glib2[1]pcre libssh2[0]libgcrypt libgcrypt[0]libgpg-error | sed -e 's/ /\n/g'
{DEPENDENCIES[@]}:
mc[0]slang
mc[1]glib2
mc[2]libssh2
glib2[0]libffi
glib2[1]pcre
libssh2[0]libgcrypt
libgcrypt[0]libgpg-error

ren22

Re: bash ausgabe um- sortieren

Beitrag von ren22 » 09.07.2016 16:24:29

danke euch erstmal aber leider nicht des rätsels lösung,also mir fällt auf wenn ich mir die gesamt zeile von der logdatei anschaue
fällte mir auf, man könnte immer nach dem letzten gesplitteten string suchen,
also "mc[1]glib2" wird zu glib2, dann suche ich weiter nur nach "glib2" und finde "glib2[0]libffi", suche ich danach weiter nach libffi , finde aber keine libffi, springe ich zurück nach "glib2" von der vorherigen suche und suche weiter nach dem string "glib2" und finde glib2[1]pcre, suche ich danach weiter nach pcre , finde aber keine pcre, springe ich zurück nach "glib2" von der vorherigen suche und suche weiter nach dem string "glib2" und finde aber keinen weiteren "glib2" string, springe ich zurück nach "mc" von der vorherigen suche und suche ich danach weiter nach dem string "mc" finde ich mc[2]libssh2 .. und so könnte man das ganze fortsetzen evtl. .. mal sehen wie man das lösen kann ...


danke :D

Antworten