Portál AbcLinuxu, 31. října 2025 02:41
Řešení dotazu:
for i in $(seq 1 1000); do .... [ -f "Screen-$i.jpg" ] && .... ....
$ cd /dev/shm/ $ mkdir e $ cd e $ touch 120.jpg $ touch 12.jpg $ touch 2.jpg $ ls 12.jpg 120.jpg 2.jpg $ ls|sort -h 2.jpg 12.jpg 120.jpg $
$ touch 0 1 10 11 12 1223 1224 13 14 2 3 $ ls 0 1 10 11 12 1223 1224 13 14 2 3 $ ls|sort -g | xargs 0 1 2 3 10 11 12 13 14 1223 1224
Pokud jsou čísla v názvech souborů dostatečně „hustá“, tedy žádná nejsou vynechaná nebo je vynechaných rozumně málo:
for ((i = 1; i <= 1000; ++i)); do
  f="Screen-${i}.jpg"
  [[ -f "$f" ]] && echo "Do something with ${f}!"
done
Pokud jsou čísla v názvech souborů řídká a testovat existenci všech možných názvů souborů nemá smysl (a/nebo trvá 5000 let):
declare -ai files
for f in *.jpg; do
  f="${f%.jpg}"
  f="${f#Screen-}"
  ((++files[f]))
done
for i in "${!files[@]}"; do
  f="Screen-${i}.jpg"
  echo "Do something with ${f}!"  
done
unset files
Výše uvedené využívá faktu, že (také) indexovaná pole v Bashi jsou řídká a při expanzi jsou implicitně setříděná podle indexů.
            Screen-<cislo>.jpg, tak separator je "-" a zajima me druhy sloupec.
vychozi stav:
$ ls -1 Screen-0.jpg Screen-10.jpg Screen-11.jpg Screen-1223.jpg Screen-1224.jpg Screen-12.jpg Screen-13.jpg Screen-14.jpg Screen-1.jpg Screen-2.jpg Screen-3.jpgsort:
$ ls -1 | sort -t - -nk2 Screen-0.jpg Screen-1.jpg Screen-2.jpg Screen-3.jpg Screen-10.jpg Screen-11.jpg Screen-12.jpg Screen-13.jpg Screen-14.jpg Screen-1223.jpg Screen-1224.jpg
 15.11.2022 11:11
🇹🇬             | skóre: 37
             | blog: Grétin blogísek
             | 🇮🇱==❤️ ,   🇵🇸==💩 ,  🇪🇺==☭
        15.11.2022 11:11
🇹🇬             | skóre: 37
             | blog: Grétin blogísek
             | 🇮🇱==❤️ ,   🇵🇸==💩 ,  🇪🇺==☭
        todlecto dělání s ls už andrej jednou komentoval hele zdroj :O ;D
Nikdy neparsuj výstup z
ls. Je to
- nechvalně známý antipattern,
- náchylné ke spoustě zbytečných chyb,
- naprosto a totálně a kolosálně zbytečné.
takže asi jako tak :D ;D
 15.11.2022 11:14
🇹🇬             | skóre: 37
             | blog: Grétin blogísek
             | 🇮🇱==❤️ ,   🇵🇸==💩 ,  🇪🇺==☭
        15.11.2022 11:14
🇹🇬             | skóre: 37
             | blog: Grétin blogísek
             | 🇮🇱==❤️ ,   🇵🇸==💩 ,  🇪🇺==☭
        tssss todlecto je na domáckám moc praktický a ikdyby to jakoby byl domácák nóóó tak teďko se má jako aspoň z čeho učit :D ;D
        Tiskni
            
                Sdílej:
                 
                 
                 
                 
                 
                 
            
    
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.