Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: muhaha 18 Května 2011, 18:22:01
-
Ahoj, chtěl bych vyřešit tohle... na vstupu by člověk něco napsal... To by se potom vložilo do pole, a potom by se to vypsalo... zkoušel jsem to dělat tak, že jsem to vypsal do souboru. Mazání jsem pak prováděl jako ... Co chcete smazat? read smaz, if [ grep $smaz ];then smazat, atd... Ale je to takhle zbytečné si myslím, když by to šlo raději ukládat do pole a potom to z toho pole vymazat. když se jedná jen o text. Bohužel jsem si všiml, že ty pole se moc nepoužívají, nemohl jsem najít nějakej example, kterej by mi to trochu osvětlil. Pomůžete? Díky
-
Programovat nelze bez presneho zadani a rozboru problemu.
Chapu dobre, ze chces z textu vymazat nektere casti. Ty casti zvoli uzivatel?
-
Ano, mrkněte na tenhle výtvor, jak to mám teď... Chtěl bych lepší řešení...
http://pastebin.com/ZaCNxSTY
-
Aha, cili se ptas, kde uchovavat vetsi mnozvi nazvu (cest), tak abys s nimi dynamicky mohl pracovat. Cili chces mnozinu.
Zajimave, to jsem nikdy neresil. Jak jsem ted o tom premyslel, tak bych to resil stejne jako samotny UNIX - jedna promena.
Cili bych to mel:
files="soubor1;soubor2;soubor3"
Test nalezeni je jednoduchy:
echo $files | grep soubor2
Vycleneni take:
echo $filkeddie@musa:~$ echo $files | tr [\;] [\\n] | sed /soubor2/d
soubor1
soubor3
Pridavas vzdy nakonec.
A nehrozi, ze dojde k diskove operaci.
Ale take se mi toto reseni nelibi. Mozna nas nekdo pouci lepe.
-
tady (http://www.linuxjournal.com/content/bash-arrays) něco o polích
mazat z toho stačí takhle
for ((i=0; i<${#pole[*]}; i++)); do
[ "${pole[$i]}" = "$soubor" ] && pole[$i]=
done