Ich habe ein paar Stunden versucht, eine pure sed Lösung für this Frage zu finden. Offensichtlich hatte ich leider keinen Erfolg. Eine wirklich knifflige Frage. komplexe Transponierung von Spalten mit reinen Sed
Beispiele (von der awk Frage):
- input:
aaa 111 aaa 222 aaa 333 bbb 444 bbb 555 ccc 666
- output:
aaa 111,222,333 bbb 444,555 ccc 666
- Eingang
APM00065101435 189 APM00065101435 190 APM00065101435 191 APM00065101435 390 190104555 00C7 190104555 00D1 190104555 00E1 190104555 0454 190104555 0462 APM00065101435 391 APM00065101435 392
- Ausgang
APM00065101435 189,190,191,390 190104555 00C7,00D1,00E1,0454,0462 APM00065101435 391,392
Was haben versucht, ich? Einige meiner nicht Arbeitsbeispiele:
sed -nr '1{h;b};H;x;/(\S+).*\n\1.*\'/M{x;b};s/.*\'//m;s/\n\S*\s*/,/g;s/,$//;p' file sed -nr '1{h;b};H;x;h;s/(\S+).*\n(\S+).*\'/\1\n\2/m;/(\S+)\n\1\'/M{$!b;g;bk};g;s/\n.*\'//m;:k;s/^\S+\s//2mg;s/\n/,/g;p;x;s/.*\n//;h;$l' file2 sed -nr 'H;g;s/(\S+)\s.*/\1/gm;/(\S+)\n\1\'/M{$!b;g;bk};g;1d;s/\n.*\'//m;:k;s/\n\S+\s/,/2g;s/\n//;p;g;s/\n.*(\n.*)$/\1/;h' file2
Vielen Dank für diese zu lesen.
Ugh ... das * könnte * möglich sein ... aber ich werde sicherlich nicht versuchen, meine Zeit damit zu verschwenden, herauszufinden, ob es ist oder nicht! Warum willst du eine reine Sed-Lösung? Dieses Problem ist ein Kinderspiel für awk ... warum machen Sie das Leben härter auf sich selbst? –
Eine Lösung dafür in 'awk' oder' perl' wird lesbarer, wartbarer und lässt dich von Einhörnern träumen !! Mach es einfach für einen Einhornmann (oder warte, bis [potong] (http://stackoverflow.com/users/967492/potong) aufwacht) !! –