Kezdőoldal » Számítástechnika » Programozás » Shell script segítség?

Shell script segítség?

Figyelt kérdés

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?


2016. okt. 30. 11:30
 1/4 anonim ***** válasza:
100%

A barátod a uniq parancs, -c kapcsolóval.


[link]

2016. okt. 30. 11:34
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:
100%
Előtte meg kivágod a szemszínt a cut-tal.
2016. okt. 30. 11:34
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:

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

2016. nov. 2. 00:44
Hasznos számodra ez a válasz?
 4/4 anonim ***** válasza:

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

2016. nov. 2. 01:17
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!