code.fastix.org

Dateiansicht:

Datei:Projekte -> Linux:myDos2Unix -> myDos2Unix
md5:e204b606e0994483ad461db12ec3cf22
sha1:aa6a757e0992060583c05434d2dfc84cc086bac7
  1. #!/bin/bash
  2. ## File: ~/bin/myDos2Unix
  3. ## Author: Jörg Reinholz, www.fastix.org
  4. ## Licence: https://code.fastix.org/lizenz.php
  5. ## Version: 1.2.2  from 2016-10-22
  6.  
  7. if [ -z "${1}" ]; then
  8.     echo "Bereinigt Dateien um carriage returns (\r)";
  9.     echo "Usage: myDos2Unix DATEI [DATEI2] ...";
  10.     exit 1;
  11. fi
  12.  
  13. exitCode=0;
  14.  
  15. while (($#)); do
  16.     if [ -f "${1}" ]; then
  17.         if [ -w "${1}" ]; then
  18.             info=$(file "${1}");
  19.             isElf=$(echo ${info} | grep '^ELF' | wc -l);
  20.             isText=$(echo ${info} | grep -i 'text' | wc -l);
  21.             isCRLF=$(echo ${info} | grep -i 'with CRLF' | wc -l);
  22.             if [ "${isElf}" = "0" ] && [ "${isText}" = "1" ]; then
  23.                 if [ "${isCRLF}" = "1" ]; then
  24.                     echo -n "Bereinige Datei \"${1}\" ... ";
  25.                     tmpfile=$(mktemp);
  26.                     tr -d "\r" < "${1}" > ${tmpfile};
  27.                     cat < ${tmpfile} > "${1}";
  28.                     rm ${tmpfile};
  29.                     echo "erledigt.";
  30.                 else
  31.                     echo "Notiz: Die Datei \"${1}\" enthält keine carriage returns und wird übergangen.";
  32.                     exitCode=0;
  33.                 fi
  34.             else
  35.                 echo "Notiz: Die Datei \"${1}\" ist binär und wird übergangen.";
  36.                 exitCode=1;
  37.             fi
  38.         else
  39.             echo "Notiz: Sie haben kein Schreibrecht an der Datei \"${1}\". Sie wird übergangen.";
  40.             exitCode=1;
  41.         fi
  42.     else
  43.         if [ -d "${1}" ]; then
  44.             echo "Notiz: Das Verzeichnis \"${1}\" wird übergangen.";
  45.             exitCode=1;
  46.         else
  47.              echo "Notiz: Die Datei \"${1}\" existiert nicht oder ist keine reguläre Datei. Die Datei \"${1}\" wird übergangen.";
  48.              exitCode=1;
  49.         fi
  50.     fi
  51.     shift;
  52. done
  53. exit ${exitCode};