2009-06-02 3 views
0

Ich möchte in der Lage sein, Datum und Uhrzeit aus einer Protokolldatei zu analysieren. Derzeit sind sie im folgenden Format:wie Zeilen in Unix-Protokolldatei-Ausgabe aufgeteilt werden

"02/Jun/2009: 14: 38: 50" aber ich möchte sie in verschiedenen Spalten mit etwas von einer Linux-Befehlszeile, so dass die resultierende Ausgabe wie folgt aussieht:

„02/Jun/2009“ „14.38.50“

könnte jemand bitte vergießen kann etwas Licht, wie dies geschehen?

Grüße

Antwort

3

Chris Antwort ist am besten, wenn es keine Linien mit anderen Formaten sind. Wenn Sie nur auf Linien mit diesem spezifischen Format beeinflussen, ist hier etwas:

cat log | sed -e 's/"\([^:]*\):\([^"]*\)"/"\1" "\2"/' 
+0

Das hat perfekt funktioniert, danke! – JDR

+0

Unbrauchbare Verwendung von 'cat': Sie können' sed -e '...'

1

Wenn das alles ist, dass in jeder Zeile ist, vielleicht:

cat file.txt | sed -e 's/:/" "/' 
+1

Beachten Sie, dass dies (absichtlich) nur die erste ersetzen wird: mit dieser Zeichenfolge. Achten Sie außerdem darauf, diese Ausgabe NICHT in die Originaldatei umzuleiten, sonst wird eine leere Datei angezeigt. –

0

sub() Funktion von awk gibt 1 zurück, wenn die Substitution erfolgreich ist, so:

cat file.txt | awk 'sub(/:/,"\" \"")' 

GNU awk kann gensub verwenden () Funktion, dies ist also ein Beispiel für die Referenz unten.

cat file.txt | gawk '$0=gensub(/("[^:]*):([^"]*")/,"\\1\" \"\\2",1)' 
1

Reines Bash:

while read line ; do echo ${line/:/\" \"}; done < logfile 
0

A biterscript für reguläre Ausdrücke suchen "&: &: &: &" und getrennt vor und nach dem ersten Doppelpunkt. (& bedeutet eine beliebige Anzahl von beliebigen Zeichen).

var str log 
cat "logfile" > $log 
while ({ sen -r "^&:&:&:&^" $log } > 0) 
do 
    var str datetime, date, time 
    stex -r "^&:&:&:&^" $log > $datetime 
    stex -p "]^:^" $datetime > $date # String before the first : is date. 
    stex -p "^:^[" $datetime > $time # String after the first : is time. 
    echo $date "\t" $time 
done 

Um es zu versuchen, können Sie Biterscripting herunterladen. Google es, oder Installationsanweisungen sind bei http://www.biterscripting.com.

Verwandte Themen