Mit AWK Tabellenspalten sortieren
Servus,
ich würde gerne mit AWK Tabellenspalten sortieren. Das Setting ist ähnlich dem Folgenden:
Gegeben ist ein "*.csv"-File mit Semikolon-getrennten Werten der Form
Die Spalten bekomme ich nicht immer in der gleichen Reihenfolge. Da ich die Daten in Excel zur Auswertung exportieren möchte, brauche ich einen Befehl der mir die Spalten unabhängig von der Ursprungsreihenfolge in die richtige Reihenfolge bringt die ich vorgebe (meinetwegen c-b-a). Auch Alphabetisch sortiert würde mir weiterhelfen.
Hat das schonmal jemand gemacht?
Grüße
Jashugan
ich würde gerne mit AWK Tabellenspalten sortieren. Das Setting ist ähnlich dem Folgenden:
Gegeben ist ein "*.csv"-File mit Semikolon-getrennten Werten der Form
c | a | b |
---|---|---|
12 | 4 | 3 |
99 | 23 | 222 |
Die Spalten bekomme ich nicht immer in der gleichen Reihenfolge. Da ich die Daten in Excel zur Auswertung exportieren möchte, brauche ich einen Befehl der mir die Spalten unabhängig von der Ursprungsreihenfolge in die richtige Reihenfolge bringt die ich vorgebe (meinetwegen c-b-a). Auch Alphabetisch sortiert würde mir weiterhelfen.
Hat das schonmal jemand gemacht?
Grüße
Jashugan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 176637
Url: https://administrator.de/contentid/176637
Ausgedruckt am: 22.11.2024 um 01:11 Uhr
8 Kommentare
Neuester Kommentar
moin,
awk? Excel?
Windoof oder Tux?
Abgesehen davon - weißt du ja - das das immer etwas bescheiden ist, wenn man nachträglich an Daten rumspielt...
Unter d00f würde ich ja tendieren
Aber du siehst, das ist etwas arg düster ..
Schau lieber zu, dass dir die datenquelle immer in der richtigen Reihenfolge sortiert geliefert wird....
Gruß
edit: etwas vereinfacht, falls es mal jemand findet, der sowas braucht - Obwohl ich mich ausdrücklich davon distanziere. /edit
awk? Excel?
Windoof oder Tux?
Abgesehen davon - weißt du ja - das das immer etwas bescheiden ist, wenn man nachträglich an Daten rumspielt...
Unter d00f würde ich ja tendieren
Set /p csv=<laufwerk:\pfad\datei.csv
echo %csv%| findstr /c: "a;b;c" && goto abc
echo %csv%| findstr /c: "a;c;b" && goto acb
echo %csv%| findstr /c: "b;c;a" && goto bca
echo %csv%| findstr /c: "b;a;c" && goto bac
echo %csv%| findstr /c: "c;a;b" && goto cab
echo %csv%| findstr /c: "c;b;a" && goto cba
echo schonwieder anders & goto end
:abc
rem ...
Aber du siehst, das ist etwas arg düster ..
Schau lieber zu, dass dir die datenquelle immer in der richtigen Reihenfolge sortiert geliefert wird....
Gruß
edit: etwas vereinfacht, falls es mal jemand findet, der sowas braucht - Obwohl ich mich ausdrücklich davon distanziere. /edit
Servus,
naja - die Frage Wind00f oder Tux? ist ja dann geklärt....
Aber das ist doch alles - und bei 30 Spalten erstrecht - komplett wahnsinniges Unterfangen..
Wenn ich in der Schule richtig aufgepasst habe, dann sind das 900 mögliche Varianten...
Begrenzt gut ist aber nett untertrieben.
Gruß
naja - die Frage Wind00f oder Tux? ist ja dann geklärt....
Aber das ist doch alles - und bei 30 Spalten erstrecht - komplett wahnsinniges Unterfangen..
Wenn ich in der Schule richtig aufgepasst habe, dann sind das 900 mögliche Varianten...
Begrenzt gut ist aber nett untertrieben.
Gruß
Guten Abend,
eine Frage, wieso öffnest Du die csv-Datei nicht direkt mit Excel?
Dann bringst Du in Excel Deine Spalten in die richtige Reihenfolge.
Und wegen awk, da wirst Du hier http://www.linuxquestions.org/questions/programming-9/ eine Antwort bekommen. Allerdings nur wenn Du schon eigenen Code vorweisen kannst.
Markus
eine Frage, wieso öffnest Du die csv-Datei nicht direkt mit Excel?
Dann bringst Du in Excel Deine Spalten in die richtige Reihenfolge.
Und wegen awk, da wirst Du hier http://www.linuxquestions.org/questions/programming-9/ eine Antwort bekommen. Allerdings nur wenn Du schon eigenen Code vorweisen kannst.
Markus
Moin Jashugan,
ich trau mich ja kaum, es so schreiben, aber....
--> bei einem Datenbank-SELECT-Befehl wäre die physikalische Reihenfolge der Spalten egal....hast du nix SQL-sprechendes?
Wenn dieser "Import-in-geänderter-Spaltenreihenfolge" regelmäßig zu erwarten ist, dann lass doch (innerhalb einer Excel-Tabelle) einen kleinen Excel-ADO-VBA-Schnipsel drüberlaufen. Von Blatt B = "Importiert wie geliefert" nach Blatt A = "Neu angeordnet".
Oder eben wie von hmarkus skizziert von Blatt B= "Importiert wie geliefert" nach Blatt A = "Neu angeordnet" mit SVerweis()/Index() und Indirekt()
Grüße
Biber
ich trau mich ja kaum, es so schreiben, aber....
--> bei einem Datenbank-SELECT-Befehl wäre die physikalische Reihenfolge der Spalten egal....hast du nix SQL-sprechendes?
Wenn dieser "Import-in-geänderter-Spaltenreihenfolge" regelmäßig zu erwarten ist, dann lass doch (innerhalb einer Excel-Tabelle) einen kleinen Excel-ADO-VBA-Schnipsel drüberlaufen. Von Blatt B = "Importiert wie geliefert" nach Blatt A = "Neu angeordnet".
Oder eben wie von hmarkus skizziert von Blatt B= "Importiert wie geliefert" nach Blatt A = "Neu angeordnet" mit SVerweis()/Index() und Indirekt()
Grüße
Biber
Guten Morgen,
bezogen auf meinen Kommentar oben habe das gerade mal mit Excel ausprobiert (Office 2010).
So geht es:
Datei in Excel öffnen,
dann alle Daten markieren,
Daten -> Sortieren klicken, es öffnet sich das "Sortieren"-Dialogfeld.
Dann unter Optionen "Spalten sortieren" auswählen
und nach der ersten Zeile sortieren.
Das wars
Gruß
Markus
bezogen auf meinen Kommentar oben habe das gerade mal mit Excel ausprobiert (Office 2010).
So geht es:
Datei in Excel öffnen,
dann alle Daten markieren,
Daten -> Sortieren klicken, es öffnet sich das "Sortieren"-Dialogfeld.
Dann unter Optionen "Spalten sortieren" auswählen
und nach der ersten Zeile sortieren.
Das wars
Gruß
Markus