2017-06-09 2 views
1

Ich habe eine große Datei, die Informationen basierend auf der Anzahl der processes und benchmark Fall verwendet enthält. All diese Informationen werden nacheinander in derselben Datei verfolgt.Erstellen von Dateien aus extrahierten Inhalt einer Datei

-- 
# Benchmarking Allgather 
# #processes = 8 
# (3592 additional processes waiting in MPI_Barrier) 
#---------------------------------------------------------------- 
     #bytes #repetitions t_min[usec] t_max[usec] t_avg[usec] 
      0   1000   0.05   0.05   0.05 
      1   1000   1.77   2.07   1.97 
      2   1000   1.79   2.08   1.97 
      4   1000   1.79   2.07   1.98 
      8   1000   1.82   2.12   2.01 
-- 
# Benchmarking Allgather 
# #processes = 16 
# (3584 additional processes waiting in MPI_Barrier) 
#---------------------------------------------------------------- 
     #bytes #repetitions t_min[usec] t_max[usec] t_avg[usec] 
      0   1000   0.05   0.05   0.05 
      1   1000   2.34   2.85   2.73 
      2   1000   2.36   2.87   2.74 
      4   1000   2.38   2.90   2.76 
      8   1000   2.42   2.95   2.79 

Um schnell die Informationen plotten ich vorhatte, eine Datei pro unabhängigen Inhalte zu erstellen, zum Beispiel mit den Informationen über I gegeben würde zwei Dateien erstellen „Allgather_8“ und „Allgather_16“ und den erwarteten Inhalt wäre dieser Dateien:

$cat Allgather_8 
    #bytes #repetitions t_min[usec] t_max[usec] t_avg[usec] 
      0   1000   0.05   0.05   0.05 
      1   1000   1.77   2.07   1.97 
      2   1000   1.79   2.08   1.97 
      4   1000   1.79   2.07   1.98 
      8   1000   1.82   2.12   2.01 
$cat Allgather_16 
#bytes #repetitions t_min[usec] t_max[usec] t_avg[usec] 
      0   1000   0.05   0.05   0.05 
      1   1000   2.34   2.85   2.73 
      2   1000   2.36   2.87   2.74 
      4   1000   2.38   2.90   2.76 
      8   1000   2.42   2.95   2.79 

ich dann diese mit gnuplot oder matplotlib zeichnen konnte.

Was ich bisher versucht:

Ich habe grep und awk wurde mit dem Inhalt zu extrahieren, die für unabhängige Abschnitte funktioniert, aber ich weiß nicht, wie dies zu automatisieren.

Irgendwelche Ideen?

+0

Was ist der Trenner trennt sie "-"? wie oben? – Inian

Antwort

5
awk ' 
/Benchmarking/ { close(out); out = $NF } 
/#processes/ { out = out "_" $NF } 
/^[[:space:]]/ { print > out } 
' file 
+1

@_Ed Morton: Spot auf! – Manolete

+0

Geben Sie ein paar Stunden um zu sehen, ob Sie eine bessere Antwort bekommen und dann sehen https://stackoverflow.com/help/someone-answers für was als nächstes zu tun. –

Verwandte Themen