Kezdőlap › Fórumok › Programozás › file oszlop sorba tükrözése
- This topic has 11 hozzászólás, 3 résztvevő, and was last updated 15 years, 2 months telt el by
uzsolt.
-
SzerzőBejegyzés
-
2010-04-18-08:31 #1889602
Hello,
van egy adatsorom ilyen alakban, oszlopszeruen (1 db oszlop):
0.001 + 0.0001i
0.002 + 0.0002i
…Mondjuk van 1000 sor. Ezeket szeretnem oszlopszeruen elhelyezni a kovetkezo keppen:
0.001 + 0.0001i 0.003 + 0.0003i …
0.002 + 0.0002i 0.004 + 0.0004i …, azaz minden az oszlopban masodik sor utan levo kettes csoportot a sorba szeretnem irni egy szokozzel elvalasztva.
Meg egyszerubben: az eredeti
a
b
c
d
…file_1.datbol
a c …
b d …alaku file_2.datot szeretnek.
Gondolom awk, vagy sed alkalmas lenne erre, de nem ertek meg hozza…
2010-04-18-09:56 #2199585Én nyitnék a dolognak két tempfile-t.
Olvasgatnék kettesével…
a -> temp1
b -> temp2
c -> temp1
d -> temp2Aztán olvasni a kettőből…
temp1 -> a
temp2 -> ca, ,c -> output
temp1 -> b
temp2 -> db, ,d -> output
Persze aki tud kettőig számolni, az egy ciklusban is megcsinálhatja.
2010-04-18-10:01 #2199586Igen ez logikus, csak awk-ban kellene megvalositani… Tudsz egy kis kodot is adni ehhez?
2010-04-18-10:04 #2199587Nincs kedvem most kódolni. Hulla vagyok.
(Gyanús viszont, hogy awk-ban KELL!
Csak nem házi feladat? Mondjuk, a hasznossága kábé pont annyi.)2010-04-18-10:10 #2199588Nem hazi. Nem feltetlenul kell awk-ban, lehet sed is. Csak most ezeket probalom tanulgatni…
2010-04-18-15:30 #21995892010-04-18-15:44 #2199590Alakul, csak valami hasonlo kellene:
a
b
c
de
f
g
h
bol az alabbit
a e
b f
c g
d h
2010-04-18-15:58 #2199591Na várj csak, akkor mit is akarsz? Minden második sort akarod egymás mellé? Vagy hogy?
Ha más nem, akkor szétszeded a fájlodat külön fájlokra, majd ezután a join parancs lesz a te barátod.2010-04-18-16:08 #2199592Van egy data.dat ban oszlopszeruen adatsor egymas alatt folytonosan (azaz nincs kozottuk semmilyen whitespace karakter: se szokoz, se vesszo, se semmi), ahogy az elozo postban. Na most mondjuk ebbol az adatsorbol van 16 darab sor 1 oszlopban. Ekkor negyesevel szeretnem szetszedni az oszlopbeli adatokat es ezeket egymas melle tenni mondjuk egy ” ” szokozzel elvalasztva, igy:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ez lenne a vegeredmeny:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
2010-04-18-16:43 #2199593Szóval ezt akarod?
$ seq 100 > proba
$ cat proba
1
2
3
4
....97
98
99
100$ for i in 1 2 3 4; do echo ; sed -n "$i~4 p" proba | tr "n" " "; done ; echo
1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81 85 89 93 97
2 6 10 14 18 22 26 30 34 38 42 46 50 54 58 62 66 70 74 78 82 86 90 94 98
3 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63 67 71 75 79 83 87 91 95 99
4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz