• jordanlund@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    1 day 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

      • Buffalox@lemmy.world
        link
        fedilink
        arrow-up
        5
        ·
        1 day 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@lemmy.world
          link
          fedilink
          arrow-up
          3
          ·
          1 day 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.

          • Buffalox@lemmy.world
            link
            fedilink
            arrow-up
            4
            ·
            1 day 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. 👍

              • Buffalox@lemmy.world
                link
                fedilink
                arrow-up
                3
                ·
                1 day 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.

                • Wren@lemmy.world
                  link
                  fedilink
                  arrow-up
                  3
                  ·
                  23 hours ago

                  I do get that joke, but that’s probably because I’m of the ASD persuasion.

        • Wren@lemmy.world
          link
          fedilink
          arrow-up
          2
          ·
          1 day 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.

        • tal@lemmy.today
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 day 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
          $