Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Aus Einträgen in Files sollen Dateien entstehen-
Gehen Sie zu Seite 1, 2  Weiter
 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Michael
Gast





BeitragVerfasst am: 10. Aug 2003 17:43   Titel: Aus Einträgen in Files sollen Dateien entstehen-

Hallo zusammen,

ich möchte gerne folgende Aufgabe lösen.
Aus einer bestimmten Anzahl Logfiles, grepe ich mir einen bestimmten Syntax heraus.
Diesen Syntax, es können unterschiedlich viele Zeilen sein (abhängig von der Anzahl der Logfiles), möchte ich gerne als Datei anlegen.

Ich komme dan nicht so richtig weiter. Das ganze müsste als Schleife funktionieren, aber ich bekomme es nicht geregelt
Danke schon mal im Voraus.

Michael
 

ratte
Gast





BeitragVerfasst am: 10. Aug 2003 19:56   Titel: Re: Aus Einträgen in Files sollen Dateien entstehen-

einfach mit > in eine Datei pipen, oder?

ansonsten poste mal deinen code

ratte
 

rattengift
Gast





BeitragVerfasst am: 10. Aug 2003 23:07   Titel: Re: Aus Einträgen in Files sollen Dateien entstehen-

hallo Michael,
ich verstehe auch nicht ganz, was du machen willst. du hast eine bestimmte (feste?) zahl von logfiles. ist das grep-suchmuster für jede datei gleich oder abhängig von der datei? dann willst du sämtliche grep-ergebnisse zusammen in einer datei ablegen? wenn das suchmuster immer gleich ist, dann würde doch (wie auch ratte meinte) ein einfaches "grep ... > file" genügen. also erklär mal genauer.
 

Michael
Gast





BeitragVerfasst am: 12. Aug 2003 10:37   Titel: Re: Aus Einträgen in Files sollen Dateien entstehen-

hallo und schon mal danke, ich teste die Sache noch einmal und dann poste ich das scripte.

Das mit > war mir klar, aber scheinbar war/ist in der Schleife ein Fehler.
Wie geschrieben, ich teste noch einmal und melde mich dann.
Vorab schon eimal mein Vorhaben.
Beispiel:
In den Dateien C0000001 - C0000120 grepe ich z. B. nach Zeilen mit "FAX" und schneide mit cut noch die entsprechenden Bereiche heraus.
Das kann eine Telefon oder Faxnummer sein wie z.B. 49-1234-56789, oder auch 49-89565-5555666.
Nun möchte ich leere Files mit eben diesen Namen anlegen.

Schicke den Syntax dann noch.

grüße
michael
 

Michael
Gast





BeitragVerfasst am: 12. Aug 2003 17:55   Titel: Re: Aus Einträgen in Files sollen Dateien entstehen-

Hi und hier kommt der Syntax.

Irgendwie raff ich das nicht so richtig.
Hoffe auf Hilfe, war bestimmt mal wieder so ein dummer Denkfehler.

Gruß
Michael

PS Die Variable "AUSZUG" ist recht lang, aber so erhalrte ich genau das, was ich möchte.

CODE
AUSZUG=`grep "from" c* |grep recvq | cut -b11-25,66- | awk '{ print $1,$2,$3,$5,$6,$7,$9}' | tr "/" " " | sed s/route// | sed s/to// | cut -d"," -f1 | awk '{print $5, $6, $7}' | tr -d "+" | tr -d " "`

for FILE in `cat $AUSZUG`
do touch $FILE >/tmp/tester/$FILE
done
 

rattengift
Gast





BeitragVerfasst am: 12. Aug 2003 19:29   Titel: Re: Aus Einträgen in Files sollen Dateien entstehen-

> PS Die Variable "AUSZUG" ist recht lang, aber so erhalrte ich genau das, was ich möchte.

ich nehme an, du hast mal "echo $AUSZUG" gemacht, um das zu prüfen. nehmen wir also an, AUSZUG enthält die richtigen dateinamen.


> for FILE in `cat $AUSZUG`

for FILE in $AUSZUG; do

> do touch $FILE >/tmp/tester/$FILE

die files sollen also leer angelegt werden? ---> touch /tmp/tester/$FILE
 

michael
Gast





BeitragVerfasst am: 13. Aug 2003 6:44   Titel: Re: Aus Einträgen in Files sollen Dateien entstehen-

Hallo,

ja, die Files sollen leer sein und nur den Namen des "gegrepten" (z.B. 49-1234-56789, oder auch 49-89565-5555666) erhalten.
echo "$AUSZUG" zeigt mir genau das an, was ich haben möchte. Der Syntax ist lang, aber er funktioniert.

Gruß
Michael
 

rattengift
Gast





BeitragVerfasst am: 13. Aug 2003 14:23   Titel: Re: Aus Einträgen in Files sollen Dateien entstehen-

und was hält dich also ab, den oben vorgeschlagenen code mal auszuprobieren? oder gibt es noch andere probleme?
 

Michael
Gast





BeitragVerfasst am: 13. Aug 2003 15:09   Titel: Re: Aus Einträgen in Files sollen Dateien entstehen-

Bin noch auf der Arbeit, probiere diesen dann nach Feierabend aus.

Grüße
Michael
 

michael
Gast





BeitragVerfasst am: 13. Aug 2003 16:03   Titel: Re: Aus Einträgen in Files sollen Dateien entstehen-

Hallo,

hat super funktioniert, das habe ich gesucht.

Vielen Dank!!
Michael
 

Michael
Gast





BeitragVerfasst am: 14. Aug 2003 6:54   Titel: Re: Aus Einträgen in Files sollen Dateien entstehen-

Hallo,

eine Sache habe ich aber noch
Ich gebe mal ein Beispiel. Ich möchte gerne AUSZUG1 und AUSZUG2 in einer Zeile haben.
Ich erhalte z.B. aus AUSZUG1 den Syntax MICHAEL, aus AUSZUG2 2003.

Ich möchte nun, dass das Ergebnis beides kombiniert zu MICHAEL2003.
Ich hatte dies mal versucht, aber bei einem "echo" hatte er die Variablen untereinander ausgegeben.

Grüße
Michael

PS Habe den String unter abgekürzt, das Original ist länger. Es geht ja nun nur noch um das Prinzip.

CODE
AUSZUG1=`grep "from" c* |grep recvq | cut -b11-25,66-`
AUSZUG2=`grep "from" c* |grep recvq | cut -b1-35,80-`

ERGEBNIS="$AUSZUG1""$AUSZUG2"

for FILE in `cat $ERGEBNIS`
do touch $FILE >/tmp/tester/$FILE
done
 

rattengift
Gast





BeitragVerfasst am: 14. Aug 2003 16:37   Titel: Re: Aus Einträgen in Files sollen Dateien entstehen-

> Ich möchte gerne AUSZUG1 und AUSZUG2 in einer Zeile haben. Ich erhalte z.B. aus AUSZUG1 den Syntax MICHAEL, aus AUSZUG2 2003.

moment mal, was geht hier ab? AUSZUG1 und AUSZUG2 enthalten doch jeweils mehrere wörter, oder habe ich das falsch verstanden?
---> dann musst du mit arrays arbeiten.

> ERGEBNIS="$AUSZUG1""$AUSZUG2"

mhh, ERGEBNIS="${AUSZUG1}${AUSZUG2}" wäre etwas sauberer. aber das klappt auch nur, wenn die auszüge atomare werte haben. wenn sie mehrere zeilen haben, macht das keinen sinn (---> arrays verwenden, s.o.).

> for FILE in `cat $ERGEBNIS`

--> "for FILE in $ERGEBNIS" (denn die datei $ERGEBNIS gibts ja noch gar nicht, kann also nicht gecattet werden).

> do touch $FILE >/tmp/tester/$FILE

äh, was machst du? das hatten wir doch auch bereits: "touch /tmp/tester/$ERGEBNIS"!
 

Michael
Gast





BeitragVerfasst am: 14. Aug 2003 18:07   Titel: Re: Aus Einträgen in Files sollen Dateien entstehen-

Hallo,

danke für den Hinweis. Die Sache mit den Arrays habe ich mal gehört.
Habe aber noch nicht die große Ahnung, werde mich nun mal mit dem Lesen dieser Angelegenheit beschäftigen.
Und ja muß ich auch noch auf die Frage antworten, es sind mehrere Wörter in der Variablen.

Grüße und nochmals DANKE
Michael
 

rattengift
Gast





BeitragVerfasst am: 14. Aug 2003 20:28   Titel: Re: Aus Einträgen in Files sollen Dateien entstehen-

> Die Sache mit den Arrays habe ich mal gehört. werde mich nun mal mit dem Lesen dieser Angelegenheit beschäftigen.

da helf ich schon, ich wollte nur zunächst wissen, ob ich richtig verstanden habe.
also AUSZUG1 und AUSZUG2 enthalten jeweils mehrere einträge, und die sollen nun PAARWEISE zu filenamen zusammengebaut werden, richtig?
also das 1.wort von AUSZUG1 und das erste wort von AUSZUG2 sollen einen filenamen bilden, ebenso die jeweils 2.wörter usw.

also statt AUSZUG1=` grep..... ` schreibst du
declare -a AUSZUG1=( `grep........` )
analog AUSZUG2. damit werden die elemente nicht alle zusammen in eine variable sondern jeweils in ein eigenes array-element abgelegt.
dann das hier:
code:

# ausgeben der arrays (nur für testphase, später entfernen)
c=0
while [ "${AUSZUG1[c]}" != "" ]; do
echo "$c: ${AUSZUG1[c]}${AUSZUG2[c]}"
c=$[ c + 1 ]
done

# erzeugen der files
c=0
while [ "${AUSZUG1[c]}" != "" ]; do
touch /tmp/tester/${AUSZUG1[c]}${AUSZUG2[c]}
c=$[ c + 1 ]
done


code ist nicht getestet. probiers einfach aus. zunächst kannst du ja mal nur die erste schleife testen, bevor du die dateien dann wirklich erzeugst.
 

michael
Gast





BeitragVerfasst am: 15. Aug 2003 8:29   Titel: Re: Aus Einträgen in Files sollen Dateien entstehen-

Hallo,

das sieht ja richtig super aus!
Ich teste das auch sofort (gegen Abend), und gebe dann Bescheid, ob es funktioniert hat.

Grüße
Michael
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Gehen Sie zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy