mam problem mam sort napsanej v bashi ale jak mile do nej otevru vetsi soubor tak mi ho to neseradi dobre nevite v cem by mohla bejt chyba :
#!/bin/bash
if test $# -ne 1
then
echo "Zadejte cestu k souboru! - např: ./sort.sh index.php"
exit
fi
#Následující kód ověří existenci souboru
if test -f $1
then
soubor=$1
else
echo "Soubot neexistuje!!!"
exit 0
fi
# Nactemem radky ze souboru do pole
i=0
pole=[]
while read radka; do
pole[$i]=$radka
i=$(expr $i + 1)
done <$soubor
prohodit() # definování funkce prohodit
{
local pomocna=${pole[$1]}
pole[$1]=${pole[$2]}
pole[$2]=$pomocna
return
}
#Pocet prvku v poli, pocet kroku cyklu
pocet_prvku=${#pole[@]}
echo "Pocet radku: $pocet_prvku"
let "pocet_kroku = $pocet_prvku - 1"
while [ "$pocet_kroku" -gt 0 ]
do
index=0
while [ "$index" -lt "$pocet_kroku" ]
do
if [ ${pole[$index]} \> ${pole[`expr $index + 1`]} ]
then
prohodit $index `expr $index + 1`
fi
let "index += 1"
done
let "pocet_kroku -= 1"
done
# Vypsani serazeneho pole
i=0
while [ "$i" -lt "$pocet_prvku" ]
do
echo ${pole[$i]}
let "i += 1"
done
exit 0
Fórum › OS - GNU / Linux
Bash - sort
priste prosim trochu lepe formatovat...
pokud ti funguje pro male soubory, ale velke ne, cekal bych ze chyba bude nekde v limitech jazyka, tedy ze neco pretyka a tak. v manualu bashe se sice pise ze velikost pole je neomezena, ale ... zkousej pro jak velke soubory ti to zacne blbnout to by mohlo napovedet.
ted par kosmetickych veci: pocet radku souboru zjistit `cat soubor | wc -l`, pocitat prvky pole bude dle me pomalejsi. druhak, kdyz uz si musis napsat vlastni sort, tak aspon pis nejaky poradny ;), trebas merge sort se da krasne napsat pomoci slevani souboru...
To KIIV : pro prakticke ucely urcite :)
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 2 hosté
Podobná vlákna
Buble sort a select sort — založil Rasťo
Bash — založil Alex
BASH + regulární výrazy — založil Roman
Bash script - case — založil memad
Moderátoři diskuze