MMCT TEAM
Server IP : 217.21.85.138  /  Your IP : 216.73.216.103
Web Server : LiteSpeed
System : Linux in-mum-web906.main-hosting.eu 4.18.0-553.37.1.lve.el8.x86_64 #1 SMP Mon Feb 10 22:45:17 UTC 2025 x86_64
User : u915722082 ( 915722082)
PHP Version : 7.4.33
Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : OFF  |  Python : OFF
Directory (0755) :  /home/u915722082/.nvm/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/u915722082/.nvm/rename_test.sh
#! /usr/bin/env bash

find_name(){
  find test -name "*[\\/:\*\?\"<>\|]*" -o -name "*."
}

check_name() {
  if [ "$(find_name | wc -l)" != "0" ]; then
    printf '%s\n\n' "The following filenames contain unwanted characters:"
    find_name
    printf '\n%s\n%s\n' "Please run ./rename_test.sh" "If the problem persist, please open an issue."
    exit 1
  else
    echo "Ok"
  fi
}

rename_test() {
  local filename
  local new_filename
  while read -r filename; do
    # Even though it looks < and > are replaced by the same < and >, the latters are not ASCII code
    # If you check with 'cat -v rename_test.sh' you would see 's/</M-KM-^B/g' and 's/>/M-KM-^C/g'
    # M-KM-^B -> U+02C2
    # M-KM-^C -> U+02C3
    new_filename=$(echo "$filename" | sed -r \
      -e "s/\"/'/g" \
      -e 's/</˂/g' \
      -e 's/>/˃/g' \
      -e 's/^(.*)\.$/\1/'
      )
    printf '%s\n%s\n\n' "$filename" "$new_filename"
    [ "$filename" != "$new_filename" ] && git mv "$filename" "$new_filename"
  done < <(find_name)

  if [ "$(find_name | wc -l)" != "0" ]; then
    echo "Still some files to treat:"
    find_name
  else
    echo "Done"
  fi
}

main() {
  if [ "$1" = "--check" ]; then
    check_name
  else
    rename_test
  fi
}

main "$@"

MMCT - 2023