Kezdőlap › Fórumok › Programozás › sor szűrése / awk
- This topic has 5 hozzászólás, 2 résztvevő, and was last updated 14 years, 7 months telt el by
ktibi.
-
SzerzőBejegyzés
-
2011-05-04-08:55 #1889985
Udv!Ilyen soraim vannak egy file-ban (mondjuk 1000 sor; 3 db. oszlop)
Code:1 0.054210 41 1.215824 51 0.790275 321 0.739529 233 0.429844 123 0.000000 94...Ugy szeretnem kiszurni ezeket a sorokat, hogy minden azonos erteku elso oszlophoz megkeresni a masodik oszlopban a legkisebb erteket es ekkor kiiratni ahhoz a sorhoz tartozo harmadik oszlopot.Tudna valaki segiteni?A fenti pl. alapjan ez lenne az output:
Code:1 0.054210 43 0.000000 94illetve, csak a harmadik oszlopa
Code:494Megj.: Talan konnyebseg lehet, hogy az elso oszlopok novekvo szamsorrendben vannak... (bar egy
Code:sortrendezi, de mind1)
2011-05-06-07:12 #2202760Igaz, hogy nem kimondottan elegáns, de működik:
Code:#!/bin/bash# Az adatfile neve es helye:file=/tmp/szam_lista# Az adatfajl elso oszlopaban talalhato kulonbozo szamok megkeresese# feltetelezve, hogy mar az elso oszlop szerint rendezett az adatfile:elemek=$(awk {'print $1'} $file | uniq)# Vegigmegyunk az elemeken es az adott szamhoz tartozo elso talalatot kiiratjukfor szam in $elemekdo2011-05-06-09:45 #2202761Koszi szepen, jol mukodik…Ha lehet meg egy pofatlan keres:ha pl, igy nez ki a file
Code:1 1 0.054210 4 1 3 0.054210 71 4 0.054210 121 1 1.215824 51 2 0.790275 321 6 0.739529 233 1 0.429844 1993 3 0.429844 163 5 0.429844 1123 1 0.000000 943 2 0.000000 953 3 0.000000 873 5 0.000000 11Ekkor azt kellene, hogy a szinten egyezo elso oszlophoz a harmadik minimumat megtalalni, es a masodik oszlop ertekeihez tartozo utolso oszlop ertekeket eltarolni.. Ez ugye valamifele hisztogram lenne, mert pl. a fenti alapjan ez lenne az eredmeny:
Code:1 41 943 73 872011-05-06-10:39 #2202762Lehet, hogy csak én vagyok kicsit fáradt, de nem értem mit szeretnél.Az adott kezdő oszlop értékű sorokból (ami a mintában csak 1 és 3) azokat keresed, ahol a 3. oszlop értéke a legkisebb?Mert akkor az 1-el kezdődő sorok közül a 0.054210 a legkisebb érték (ami három sorban is szerepel), de végül melyik oszlop is kell?A 3-al kezdődőeknél pedig a 0.000000
2011-05-06-13:18 #2202763Igen, jol latod….
az 1-el kezdődő sorok közül a 0.054210 a legkisebb érték (ami három sorban is szerepel)
A 3-al kezdődőeknél pedig a 0.000000
2011-05-07-07:35 #2202764Most hogyan tovabb?
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.

legutóbbi hsz