BASH Script Problem.

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
mc-chaos
Beiträge: 25
Registriert: 08.03.2003 15:45:00
Wohnort: Hamburg
Kontaktdaten:

BASH Script Problem.

Beitrag von mc-chaos » 30.08.2005 11:36:37

Hallo alle zusammen.

ich habe hier ein kleines Problem. Vielleicht auch nur einen Denkfehler....

Ich möchte aus einer LogDatei Dateinamen extrahieren. Dieses geht auch mit einem

" cat $DATEINAME | grep \/home\/LDT.....\/X "

Mit dieser Abfrage bekomme ich herraus, ob in einem Verzeichnis (/home/LDT*) eine Datei (X123456789.LDT) erstellt wurde. Mit dem Befehl

" grep ^...310'[:1|2:]'[a-Z] $LDTDATEI "

bekomme ich einen Satz an Zeilen, die ich ausgegeben haben möchte. Aber ich bekomme diese beiden Befehlszeilen einfach nicht kombiniert. So dass die Dateinamen aus dem 1. Befehl als Eingabe für den 2. Befehl genommen werden.

Vielleicht hat ja jemand von euch eine Idee, wie ich dieses Problem lösen kann...

Vielen dank schon mal für eure Hinweise und Hilfen im vorraus.

Sascha

Benutzeravatar
feltel
Webmaster
Beiträge: 10474
Registriert: 20.12.2001 13:08:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Leipzig, Germany
Kontaktdaten:

Beitrag von feltel » 30.08.2005 11:42:29

Wie wärs hiermit:

Code: Alles auswählen

find '/home/DLT*' -name 'X123456789.LDT' -print0 | xargs -0 grep ^...310'[:1|2:]'[a-Z]
?

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 30.08.2005 11:43:27

Code: Alles auswählen

for inhalt in `grep \/home\/LDT.....\/X $DATEINAME`
do
     grep ^...310'[:1|2:]'[a-Z] $inhalt
done
vielleicht so?
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
mc-chaos
Beiträge: 25
Registriert: 08.03.2003 15:45:00
Wohnort: Hamburg
Kontaktdaten:

Beitrag von mc-chaos » 30.08.2005 12:21:30

Hallo alle zusammen...

jetzt habe ich selbst eine Lösung gefunden:

" grep ^310'[:1|2:]'[a-Z] `cat $LOGDATEI |grep \/home\/LDT.....\/X |`

aber die Lösung mit der "FOR-Schleife" war eigentlich das, was ich mir vorgestellt habe... Ich werde mein Script wohl noch mal anpassen....

Vielen dank für eure Hilfe.

Sascha

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 30.08.2005 12:32:55

na dann aber richtig:

Code: Alles auswählen

grep ^310'[:1|2:]'[a-Z] `| grep \/home\/LDT.....\/X $LOGDATEI`
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 30.08.2005 14:03:25

Savar hat geschrieben:na dann aber richtig:
genau, und nicht falsch ;)

Code: Alles auswählen

grep ^310'[:1|2:]'[a-Z] `grep \/home\/LDT.....\/X $LOGDATEI`
Was sollte die Pipe da?

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 30.08.2005 14:08:09

Joghurt hat geschrieben:
Savar hat geschrieben:na dann aber richtig:
genau, und nicht falsch ;)

Code: Alles auswählen

grep ^310'[:1|2:]'[a-Z] `grep \/home\/LDT.....\/X $LOGDATEI`
Was sollte die Pipe da?
nüschts.. war nen C'n'P Fehler :oops: 8) naja.. auch ein Gott macht Fehler :mrgreen:
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Antworten