Zeitstempel auslesen und vor Zeile stellen

E

ericmk

Hallo allerseits,

ich bin neu hier und fange gerade an mich mit Skripting zu beschäftigen.
Ich habe ein Problem welches ich nicht gelöst bekomme:

Ich habe eine Datei mit mehren 10.000 Zeilen.
Alle Zeilen sehen wie folgt aus:

Name wert1 wert2 wert3 wert4

Alle 100 - 130 Zeilen koomt eine Zeile die wie folgt aussieht:

Begin May 23 Wed 13:12:18 (Halt das Datum und die Uhrzeit)

Was ich bräuchte wäre folgendes:

13:12:18 Name wert1 wert2 wert3


Jetzt ändert sich die Zeit also alle 100-130 Zeilen

Wie kann ich das lösen? (erste Versuche im Skripting habe ich mit AWK gemacht)

thx

Eric
 
Ungetestet:
Code:
while read LINE;
do
  DATE_LINE="`grep ^Begin "$LINE"`"
  if [ -n "$DATE_LINE" ]; then
    DATE="`echo "$DATE_LINE" | cut -d " " -f5`"
  else
    SHORT_LINE="`echo $LINE | cut --output-delimiter=" " -d " " -f 1-4`"
    echo "$DATE $SHORT_LINE"
  fi
done < /path/to/file
:)
 
Ich schätze, dass der TE es so meint:
Code:
#!/bin/bash
while read -a l; do
  [ "${l[0]}" = "Begin" ] && p="${l[4]} " || echo "$p${l[*]}"
done <DeineDatei

Da sieht man auch schön, wie überflüssig und lahm Tools wie grep und cut sind, wenn man sie innerhalb einer Schleife einsetzt, um jeweils eine einzige Zeile damit zu bearbeiten.
 

Ähnliche Themen

CSV Datei mit sed manipulieren/optimieren/ergänzen

sed im script per crontab

Kmenu ist weg^^

Zurück
Oben