Shell script segítség?
Ha van egy txt-m benne adatok pl születési évek, nevek, szemszín
Hogy tudom kinyerni shell scriptben pl, megállapítani h az adott hónapban, mi volt a leggyakoribb szemszín?
pl:
Nagy Gábor, 2016 november 5, barna
Okés h rászűrök a hónapra | grep hónap, de hogy tudom lekérdezni vagy megszámoltatni?
Valoban a file-bol ki kell vagni a szemszint, ami nem trivialis, ha van 3 nevu ember a listaban...
Itt egy script, ami minden honapra megmondja, hogy mi volt a leggyakoribb szemszin, es, hogy pontosan hanyszor fordult elo:
# Get a list of months:
file=${$1}
for month in $(cut -d"," -f2 ${file} | cut -d" " -f2 | sort | uniq); do
a=($(cut -d"," -f3 ${file} | sort | uniq -c | sort -k1n | tail -n1))
echo "The most frequent eye color in ${month} is ${a[1]} with ${a[0]} occurrences."
done
OK, bocs, nagyon siettem, a fenti megoldas nem jo... kerlek tekintsd targytalannak. Az egesz szituacio a bena szokozok meg vesszok miatt nem olyan egyszeru, mint amilyennek latszik. Arrol nem is beszelve, hogy lehetnek olyan honapok, amikor tobb szemszin van ugyanakkora max elofordulassal. De itt ez a script, ez mar ezt is lekezeli.
# Get a list of months:
file=${$1}
for month in $(cut -d"," -f2 ${file} | awk '{print $2}' | sort | uniq); do
# Get the maximum number of occurrence:
maxcount=$(grep -w ${month} ${file} | cut -d"," -f3 \
| sort | uniq -c | sort -k1n | tail -n1 | awk '{print $1}')
# Get all colors with the max occurrence:
colors=$(grep -w ${month} ${file} | cut -d"," -f3 \
| sort | uniq -c | sort -k1n | awk -v max="$maxcount" '$1 == max {print $2}' \
| tr "\n" "," | sed -e 's/.$//')
echo "The most frequent eye color in ${month} is ${colors} with ${maxcount} occurrences."
done
Ez volt a teszt adatsor:
Nagy Gábor, 2016 november 5, barna
Kiss Otto Istvan, 1993 januar 12, kek
Lakatos Luca Csenge, 2002 november 12, kek
Papp Marianna, 2000 november 12, kek
Jakabos Zsuzsa,2012 november 22, kek
Leszko Miklos, 1981 aprilis 12, barna
Toth Krisztian, 1995 szeptember 12, kek
Kiss Pista, 1999 november 55, zold
Bartos Erno, 2011 november 33, barna
Kovacs Gizella, 2011 november 12, barna
Balog Akos, 1986 julius 12, barna
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!