Möglich mit SED

A

abenstex

Grünschnabel
Hallo zusammen,

ich habe eine Datei, die tabellarisch aufgebaut ist:
ID Wert ID_1 ID_2
1 xy 1 2
2 xy 3 4
3 xy 5 6
1 ab 7 8
2 ab 9 10

usw.
Jetzt möchte ich die Datei allerdings folgendermaßen umwandeln:
ID xy ab
1 1_2 7_8
2 3_4 9_10
3 5_6 usw.

Geht sowas mit sed?
 
Wird schwierig. Ich würde es mit Perl und Hashes machen.

Gruss, Xanti
 
Nimm halt die Sprache, mit der du am besten kannst.
PHP, Perl, Python, BASH (*hust*), C, C++, Java, SQL...

Dann sollte das kein problem mehr sein :D

Karru
 
Naja auf den ersten Blick würde ich C/C++ sagen, das einlesen sollte eigentlich mit fscanf gehen. Und dann in Arrays speicher, bzw gleich ausgeben. Und eine While schleife.
 
Hallo
Genau für solche Dinge gibt es Perl oder AWK.
Warum dann erst noch kompilieren usw.
Ist sicher auch mit sed machbar, aber dabei verrenkt man sich das Hirn.
Immerhin kennt sed einen Holdspace. aber bei großen Datenmengen ist das total ungeeignet.
Wenn ich das richtig verstehe, willst du eine Matrix drehen?:think:

Gruß Wolfgang
 
Schnellschuss mit Perl (hatte Langeweile) ;)

Code:
perl -an -e 'unless (1..1) {$h{$F[0]}{$F[1]}.="$F[2]_$F[3]"; $k{$F[1]}=1}; END{@a=sort keys %k; print "ID\t$a[0]\t$a[1]\n"; print "$_\t$h{$_}{$a[0]}\t$h{$_}{$a[1]}\n" foreach sort keys %h}' file
 

Ähnliche Themen

Ardour 7.0: Die professionelle Audio-Workstation kostet 1 US-Dollar (Update)

Ardour 7.0: Die professionelle Audio-Workstation kostet 1 US-Dollar

sed - Bitte um Unterstützung

OpenMandriva Lx 4.2 („Argon“): Linux-Distribution mit Kernel 5.10.14 und KDE Plasma 5.20.5

Siduction 2021.1.0 („C-Blues“): Community-Distribution mit Linux 5.10.15 auf Debian-Basis

Zurück
Oben