Ich muss die in 3 CSV-Dateien enthaltenen Daten mit Gnuplot zeichnen.
Häufig Ich verwende den folgenden Code, um aus 2 CSV-Dateien zu zeichnen:
$datablock << EOD `cat ../Q1a/sim_Q1.csv <(tail -n+8 ../Q1b/sim_Q1.csv | tr ""," " " | sort -nk19 )| tail -n+8 | tr ""," " " | sort -nk19 > ../Q1a/Q6_ressult.txt` EOD set print "|bash -x" print $datablock set print
Die CSVs befinden sich in drei verschiedenen Verzeichnissen. Die Daten beginnen in Zeile 8, und ich muss die Zeichen "
und ,
entfernen und die Daten nach Spalte 19 sortieren.
Ich weiß nicht, wie ich diesen Code erweitern soll, um 3 verschiedene CSVs einzufügen, die dasselbe tun: sort
, tail -n+8
und tr
Befehle und erhalten eine endgültige .txt
-Datei mit dem Ergebnis.
Antwort
Ich bin mir nicht sicher, wie Gnuplot dies speziell spielt, aber wenn Sie nach einer Möglichkeit suchen, tail
mehrere Dateien zu erstellen Sie können dies einfach tun, indem Sie ihre Namen in der Befehlszeile übergeben.
Das einzige Problem ist, dass tail
die Ausgaben mit einem Header trennt, um die Anzeige durch den Menschen zu erleichtern, es sei denn, Sie Fügen Sie die Option -q
hinzu:
-q, --quiet, --silent never output headers giving file names
Soweit ich sehen kann, können Sie die Prozessersetzungen und mehrere (r e) Sortieren einfach
tail -q -n+8 ../Q1a/sim_Q1.csv ../Q1b/sim_Q1.csv ../Q1c/sim_Q1.csv | tr ""," " " | sort -nk19
Kommentare
- Vielen Dank. Ihr Code ist einfach und funktioniert gut. Ich möchte Sie fragen, wie ich einen Zeilenbereich in der zweiten Datei auswählen kann, beispielsweise von 8 bis 470 Zeilen. Ich könnte
sed -n -e '8,470p'
verwenden, weiß aber nicht, wie ich Ihre Lösung ändern soll. Ich denke, das Problem ist, dass ich diese Bereichsauswahl in nur einer der drei Dateien benötige. - @ user1993416 Die wahrscheinlich einfachste Änderung wäre
tail -q -n+8 file1 <(head -n 470 file2) file3
- Schließlich sind meine Ergebnisse in 5 Dateien und 2 davon, ich muss die
head -n
bis zu einer Zeile machen. Kann ich so etwas wietail -q -n+8 file1 <(head -n470 file2 <(head -n380 file3)) file4 file5
schreiben? - Ich habe eine neue Frage mit dem Einfügen der 5 Dateien gestellt. Grüße.