Kezdőlap › Fórumok › Programozás › sorismetles szurese
- This topic has 9 hozzászólás, 7 résztvevő, and was last updated 20 years, 6 months telt el by
TsO.
-
SzerzőBejegyzés
-
2005-01-08-08:14 #1995868
nem lehetne perl? abban sokkal könnyebb…
2005-01-08-09:16 #1995869A problema nem bonyolult:
Adott egy file, benne sok nev, s azt szeretnem, hogy minden kulonbozo elofordulast irjon ki, s szamolja meg, hanyszor tortent!valaszkent termeszetesen nem kesz shell scriptet varok (bar nem haragszom erte 🙂 ) , hanem otleteket, hogy ki hogyan valositana meg, milyen parancsok segitsegevel, mit nezzek at, stb!
[align=right][snapback]109656[/snapback][/align]hát olvasd be elõször a soronként az eredeti file-t és soronként ellenõrizd h benne van e egy tömben, ha nincs akkor tedd bele, ha van akkor meg ne csinálj semmi 😉
példa az mplayer-installer-bõl (install.sh) :
Code:while read file; #deleting unnecessary files in $down_dir
do
d=${#ins_files[*]}
del=”yes”
while [ „$d” -ge „0” ]; do
if [ „${ins_files[$d]}” = „$file” ]; then
del=”no”
echo „Don’t delete in $down_dir: $file”
fi
let d=d-1
done
if [ „$del” = „yes” ]; then
echo „Deleting in $down_dir: $file”
rm -r $down_dir/$file
fi
let fil=fil+1
done < down_files.txtannyi különbség eközött meg a te felvetésed elvi megoldása között, hogy itt már megvan a tömb, neked meg gyakorlatilag az if [ „del” = „yes” ] ágban lévõ rm helyett (ugye ebben az esetben nincs benne a tömben a keresett név) bele kell tenned abba …
[ezeket kivettem, innen, csak az eredetiben szerepel:
és ne zavarjon meg a ${…} meg az `eval_gettext „….”` ez elsõ csak színt állít a második meg fordítja a localnak megfelelõ nyelvre a fenti stringeket (erre gondolom nincs szükséged)]2005-01-08-09:36 #1995870nah jó már kezdek felébredni ( a 2. kv közben)…
sz’al átírva a te problémádra vhogy így nézne ki:
Code:#!/bin/sh
while read nev; #nevek ellenõrzése
do
d=${#nevek[*]}
dupla=”nem”
while [ „$d” -ge „0” ]; do
if [ „${nevek[$d]}” = „$nev” ]; then
dupla=”igen”
echo „A $nev létezik a tömbben…”
fi
let d=d-1
done
if [ „$dupla” = „nem” ]; then
echo „$nev”
nevek[$n]=$nev
fi
let n=n+1
done < nevek.txt2005-01-08-10:44 #1995871nem lehetne perl? abban sokkal könnyebb…
[align=right][snapback]109695[/snapback][/align]tudom, hogy egyszerubb. 🙂
De annelkul meg izgalmasabb. 😉2005-01-08-10:48 #1995872nah jó már kezdek felébredni ( a 2. kv közben)…
sz’al átírva a te problémádra vhogy így nézne ki:
Code:#!/bin/sh
while read nev; #nevek ellenõrzése
do
d=${#nevek[*]}
dupla=”nem”
while [ „$d” -ge „0” ]; do
if [ „${nevek[$d]}” = „$nev” ]; then
dupla=”igen”
echo „A $nev létezik a tömbben…”
fi
let d=d-1
done
if [ „$dupla” = „nem” ]; then
echo „$nev”
nevek[$n]=$nev
fi
let n=n+1
done < nevek.txt[align=right][snapback]109714[/snapback][/align]
Koszonom. 🙂 gondoltam kapok egy valaszt, hogy csinald while -lal, meg tomb segitsegevel, de igy meg jobb! 😀
jo reggelt egyebkent! 😀
2005-01-13-08:33 #1995873A kovetkezo dolgot szeretnem megoldani lehetoseg szerint shell script segitsegevel, s nem perl, python, vagy ilyesmi hasznalataval. 🙂
A problema nem bonyolult:
Adott egy file, benne sok nev, s azt szeretnem, hogy minden kulonbozo elofordulast irjon ki, s szamolja meg, hanyszor tortent!
[align=right][snapback]109656[/snapback][/align]Lehet, hogy most túl egyszerû, de a uniqe progi nem erre való? Próbáld meg!
2005-01-13-17:39 #1995874Ha nem érdekes, hogy közben sorba rendezi a neveket (sorokat), akkor itt egy ilyen:
Code:#! /bin/sh
if [ $# != 2 ]; then
echo „Hasznalat: $0 infile outfile”
exit
fiin_file=”$1″
out_file=”$2″
sort „$in_file” | uniq > „$out_file”s szamolja meg, hanyszor tortent!
Mit értesz a „hányszor történt”-en?
2005-01-13-19:27 #1995875lol
cat file | sort | uniq
ennyi az egesz.
2005-01-13-20:02 #1995876lol
cat file | sort | uniq
ennyi az egesz.
[align=right][snapback]111239[/snapback][/align]lolozzál még meg „számoltasd össze” aztán már csak pár sorral rövidebb.
megoldások száma szinte végtelen, emiatt felesleges lolozni,
amúgy meg látok benne 1 dolgot amit kihagytam, meg 2-t amit elrontottam, de tök mind1, meghagyom neked hogy lolozhass tovább…a lényeg h az menjen…
érdekes h majd 1 hét eltelt a kérdés felvetése óta és most jössz ezzel pff2009-12-04-19:56 #1877885A kovetkezo dolgot szeretnem megoldani lehetoseg szerint shell script segitsegevel, s nem perl, python, vagy ilyesmi hasznalataval. 🙂
A problema nem bonyolult:
Adott egy file, benne sok nev, s azt szeretnem, hogy minden kulonbozo elofordulast irjon ki, s szamolja meg, hanyszor tortent!valaszkent termeszetesen nem kesz shell scriptet varok (bar nem haragszom erte 🙂 ) , hanem otleteket, hogy ki hogyan valositana meg, milyen parancsok segitsegevel, mit nezzek at, stb!
koszonom a segitseget.
szerk: Nevek soronkent vannak (ez nem volt teljesen egyertelmu), azaz
cat filepisti
bela
feri
pisti
juli
teri
pistieredmenyt szeretnem:
pisti
bela
feri
juli
teritehat minden nev egyszer legyen felsorolva.
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz