• @[email protected]
    link
    fedilink
    44 months ago

    Filenames are text, not numbers, so 11 comes before 2. So does 111, 101, etc. Anything starting with 1 is before 2.

    In order to sort “properly”, you have to name your files properly.

    00
    01
    02
    up to…
    99

    If you have more than 100 files in the same folder, the you have to go back through and re-name them:

    000
    001
    002
    … 099
    100

        • @[email protected]
          link
          fedilink
          English
          14 months ago

          A Perl program to convert the number of digits in the first numeric field that appears in a list of filenames.

          source
          #!/usr/bin/perl -w
          # numberit.pl
          # Converts between number formats (number of leading zeros) in numbers in title names
          # Usage: <number of digits> filelist
          
          $digits = shift (@ARGV);
          
          if ($digits > -1)
          {
              foreach $oldName (@ARGV)
              {
                  $newName = $digitValue = $oldName;
          
                  if ($digitValue =~ m/\//) {
                    $digitValue =~ m/^(.*\/[^0-9\/]*)([0-9]+)([^\/]*)$/;
                    $prefix = $1;
                    $postfix = $3;
                    if (!defined($prefix)) {
                      $prefix = "";
                    }
          
                    $digitFormatted = sprintf("%0${digits}d", $2);
          
                  } else {
                    $digitValue =~ m/^([^0-9]*)([0-9]+)([^\/]*)$/;
                    $prefix = $1;
                    $postfix = $3;
                    if (!defined($prefix)) {
                      $prefix = "";
                    }
          
                    $digitFormatted = sprintf("%0${digits}d", $2);
          
          
                  }
          
                  if ($digitValue) {
                    $newName = $prefix . $digitFormatted . $postfix;
                    rename($oldName, $newName);
                  }
                }
          }
          

          Looks something like:

          $ touch a1.mp3
          $ touch a2.mp3
          $ numberit.pl 3 *
          $ ls
          a001.mp3  a002.mp3
          $ numberit.pl 2 *
          $ ls
          a01.mp3  a02.mp3
          $
          
        • Wren
          link
          fedilink
          24 months ago

          Ahh. Makes sense that it can be automated. Same as with audio engineering. Though I like to normalize by hand sometimes as automated normalization tends to make a track sound lifeless and dead.

      • @[email protected]
        link
        fedilink
        64 months ago

        Oh no this isn’t it, this is extremely basic. As a programmer you will encounter way way more complex logic problems, so logic problems become 2nd nature. And it can be frustrating when “normies” don’t understand what appear to a programmer to be a matter of pretty simple logic thinking.

        • Wren
          link
          fedilink
          34 months ago

          As a “normie” I’d never assume to understand even the most basic of programming. My head hurts to even try and come up with a joke involving the subject.

          • @[email protected]
            link
            fedilink
            44 months ago

            It’s so nice we have people like you, that allows us to feel superior, even if we are inferior in every other way imaginable. 👍

              • @[email protected]
                link
                fedilink
                44 months ago

                Because it’s the same? Or because it’s very different?
                My wife was a professional musician for a few years.

                PS:
                Do you get this joke?
                The wife sends the man for shopping and asks him to buy 1 liter milk and if they have eggs buy 12.
                When he comes home, she looks at him astonished, why did you buy 12 liters of milk?
                Because they had eggs he responds.