Portál AbcLinuxu, 10. května 2025 02:05
Dobry den,
potrebujem spravit nasledujucu vec. Mam v suboru zapisany text napriklad "aaaa". Skript text "aaaa" precita a zmeni ho na "aaab", ktory nasledne zapise do povodneho suboru. Pri dalsom spusteni ho zmeni znovu zmeni z "aaab" na "aaac" ... az pride po "aaaz" a to zmeni na "aaba" potom na "aabb" ...
Cast so zapisom a citanim zo suboru nie je problem, potrebujem vyriesit len to ako sa to da inkrementovat tak ako som to napisal.
Som uz zufaly cenim si kazdu pomoc, vopred dakujem.
Jakou že to studuješ školu
Odhaduju informatiku kdekoliv, ale obvykle se řeší převody jenom do binární a hexadecimální soustavy .
Tady je řešení, ale neřeknu ti, jak funguje.
incr() { alphabet=(a b c d e f g h i j k l m n o p q r s t u v w x y z) b="$1"; a="$b+" while test "$b" != "$a"; do b="$a"; for (( i=1; i<${#alphabet[@]}; i++ )); do eval a=\$\{a/${alphabet[$i-1]}+/${alphabet[$i]}\} done a=${a/z+/+a}; a=${a/#+/a} done echo $b }
Skvele diky, ani nemusis hovorit ako to funguje myslim ze je to celkom jasne z toho kodu, aj som to riesil cez pole len som sa nevedel dopatrat ku konkretnemu spravnemu rieseniu, stale som sa niekde zasekaval, v bashi som celkom novacik. Este raz diky moc :)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.