[Rozw.] AWK - transpose

Problemy dotyczące programowania.

Moderatorzy: Moderatorzy, Administratorzy

czezz
Użytkownik
Posty: 265
Rejestracja: 2004-10-01, 15:23
Lokalizacja: W-wa

[Rozw.] AWK - transpose

Post autor: czezz »

Chcę zrobic transpozycję - kolumne przenieść do wierszy tak aby każdy wiersz miał 8 kolumn.
To co potrafię zrobić, to przenieśc całą kolumnę do jednego wiersza"

Kod: Zaznacz cały

nawk '$1=$1' RS= input.txt
, a chciałbym aby po każdym 8 polu rozpoczynała się nowa linia.

input.txt:

Kod: Zaznacz cały

10004.00,
106473388.00,
1442167619.00,
192.80,
14.71,
318145.44,
941276.69,
311.00,
10037.00,
218609.00,
232698.00,
138.33,
2.95,
104.00,
1014763.31,
7.00,
10006.00,
510197111.00,
5177395202.00,
179.16,
15.42,
189461.72,
967962.06,
341.00,
11491.00,
702082782.00,
17808287130.00,
253.96,
18.02,
162678.22,
2868964.25,
81.00,
10004.00,
106473388.00,
1442167619.00,
192.80,
14.71,
318145.44,
941276.69,
311.00,
Taki rezultat chcę uzyskać:

Kod: Zaznacz cały

10004.00,106473388.00,1442167619.00,192.80,14.71,318145.44,941276.69,311.00,
10037.00,218609.00,232698.00,138.33,2.95,104.00,1014763.31,7.00,
10006.00,510197111.00,5177395202.00,179.16,15.42,189461.72,967962.06,341.00,
11491.00,702082782.00,17808287130.00,253.96,18.02,162678.22,2868964.25,81.00,
10004.00,106473388.00,1442167619.00,192.80,14.71,318145.44,941276.69,311.00,
Prosze o pomoc jeśli ktoś ma pomysł ?
Ostatnio zmieniony 2010-12-28, 18:07 przez czezz, łącznie zmieniany 1 raz.
Awatar użytkownika
dienet
Moderator
Posty: 2105
Rejestracja: 2007-07-24, 18:58
Lokalizacja: Racibórz/Rybnik

Re: AWK - transpose

Post autor: dienet »

Prosze o pomoc jeśli ktoś ma pomysł ?
Gotowca Ci nie dam, bo ja chyba nie umiem pisać w awk, ale zasada jest prosta.
1. Czytasz linia po linii (zapisujesz do x ile już zczytałeś linii). Oczywiście tak czytasz żeby nie zczytywać po , tego nieszczęsnego entera.
2. Wyświetlasz to co w punkcie 1 zczytałeś.
3. Jeśli x modulo (%) 8 jest równe 0 to wyświetlasz enter.
Pozdr0
dienet
[img]http://i164.photobucket.com/albums/u19/slawek15/kotekeo0lq3.jpg[/img]
Awatar użytkownika
webster
Użytkownik
Posty: 1269
Rejestracja: 2009-10-06, 11:58
Lokalizacja: Gdańsk
Kontakt:

Re: AWK - transpose

Post autor: webster »

Kod: Zaznacz cały

i=0;cat input.txt |while read linia;do echo -n "$linia";i=`expr $i + 1`; if [ "$i" == "8" ]; then echo "";i=0;fi;done
:D :p bez awk :)) hehe
††† Chaos Of The Mirror - Valheru †††
††† I ♥ SlackWare RuLeZ †††

Slackware Poland FaceBook
czezz
Użytkownik
Posty: 265
Rejestracja: 2004-10-01, 15:23
Lokalizacja: W-wa

Re: AWK - transpose

Post autor: czezz »

O! Bardzo dziekuję - działa :)
Awatar użytkownika
webster
Użytkownik
Posty: 1269
Rejestracja: 2009-10-06, 11:58
Lokalizacja: Gdańsk
Kontakt:

Re: [Rozw.] AWK - transpose

Post autor: webster »

Pewnie że działa. czezz. Postaraj się zrozumieć kod który Tobie napisałem tak by móc na przyszłość samemu go napisać.

Pozdr.
††† Chaos Of The Mirror - Valheru †††
††† I ♥ SlackWare RuLeZ †††

Slackware Poland FaceBook
ODPOWIEDZ