Avatar billede larsgrau Forsker
22. juni 2023 - 10:04 Der er 1 løsning

flere end 10 filer

Hej

Jeg har dette script, men hvis der er flere en 99 filer, virker det ikke, nogen som kan hjælpe

#!/bin/bash

echo "antal filer"
read b

var=$b
str=""
str2=".raw"

for i in $( eval echo {0..$var} )

    do if [ $i -lt 10 ]
    then
        exportraw "Data_00000"$i.tmp $i.raw
        str+="$i$str2 "
       
    else
        exportraw "Data_0000"$i.tmp $i.raw
        str+="$i$str2 "
    fi
done

cat $str>merged.raw

problemmet er hvis der er mere 99 filer der skal være 1 null mindere i Data_0000
Avatar billede Henrik Hansen Forsker
22. juni 2023 - 10:43 #1
Prøv med printf. Den kan formatere stringen som et tal med foranstående 0'er; 000000 - 000099. Så behøver du ikke en if og dobbelt-kode.
...
for i in $( eval echo {0..$var} );do
    exportraw $(printf "Data_%06d.tmp" $i) $i.raw
    str+="$i$str2 "
done
...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester