Schlagwort: Linux: Umlaute

  • Skripte

    Hier ist ein Shellskript zum Umwandeln von Leerzeichen in Unterstrich, scharfes „s“ in sz und Umlaute in ae, oe, ue. Das Skript muss mit einem Startverzeichnis angegeben werden:

    #!/bin/bash

    # Bash’s Internal Field Separator aendern, damit Leerzeichen im Dateinamen nicht blockieren

    BACKUPIFS=IFS

    IFS=“

    # usage

    usage ()
    {
    echo -e „\n\n ERROR! nr. of params: $params\n“
    echo -e „\n\n Usage: $0 >\n“
    exit 1 ;
    }

    # Parameter

    if [ $# -ne 1 ]; then
    params=$#
    usage
    fi

    for i in „$1″/*
    do
    ALT=“${i}“
    NEU=“$(echo ${i}|sed -e ’s/ /_/g‘)“
    if [[ „$ALT“ != „$NEU“ ]]; then
    mv -i „$ALT“ „$NEU“
    echo -e “ Verz/Datei ${ALT} wurde in ${NEU} umgewandelt!“
    echo -e „————————————\n“
    fi
    if [ -d „$NEU“ ]; then
    sh $0 „$NEU“
    fi
    done

    for i in „$1″/*
    do
    ALT=“${i}“
    NEU=“$(echo ${i}|sed -e ’s/Ä/Ae/g‘)“
    if [[ „$ALT“ != „$NEU“ ]]; then
    mv -i „$ALT“ „$NEU“
    echo -e “ Verz/Datei ${ALT} wurde in ${NEU} umgewandelt!“
    echo -e „————————————\n“
    fi
    if [ -d „$NEU“ ]; then
    sh $0 „$NEU“
    fi
    done

    for i in „$1″/*
    do
    ALT=“${i}“
    NEU=“$(echo ${i}|sed -e ’s/ä/ae/g‘)“
    if [[ „$ALT“ != „$NEU“ ]]; then
    mv -i „$ALT“ „$NEU“
    echo -e “ Verz/Datei ${ALT} wurde in ${NEU} umgewandelt!“
    echo -e „————————————\n“
    fi
    if [ -d „$NEU“ ]; then
    sh $0 „$NEU“
    fi
    done

    for i in „$1″/*
    do
    ALT=“${i}“
    NEU=“$(echo ${i}|sed -e ’s/Ö/Oe/g‘)“
    if [[ „$ALT“ != „$NEU“ ]]; then
    mv -i „$ALT“ „$NEU“
    echo -e “ Verz/Datei ${ALT} wurde in ${NEU} umgewandelt!“
    echo -e „————————————\n“
    fi
    if [ -d „$NEU“ ]; then
    sh $0 „$NEU“
    fi
    done

    for i in „$1″/*
    do
    ALT=“${i}“
    NEU=“$(echo ${i}|sed -e ’s/ö/oe/g‘)“
    if [[ „$ALT“ != „$NEU“ ]]; then
    mv -i „$ALT“ „$NEU“
    echo -e “ Verz/Datei ${ALT} wurde in ${NEU} umgewandelt!“
    echo -e „————————————\n“
    fi
    if [ -d „$NEU“ ]; then
    sh $0 „$NEU“
    fi
    done

    for i in „$1″/*
    do
    ALT=“${i}“
    NEU=“$(echo ${i}|sed -e ’s/Ü/Ue/g‘)“
    if [[ „$ALT“ != „$NEU“ ]]; then
    mv -i „$ALT“ „$NEU“
    echo -e “ Verz/Datei ${ALT} wurde in ${NEU} umgewandelt!“
    echo -e „————————————\n“
    fi
    if [ -d „$NEU“ ]; then
    sh $0 „$NEU“
    fi
    done

    for i in „$1″/*
    do
    ALT=“${i}“
    NEU=“$(echo ${i}|sed -e ’s/ü/ue/g‘)“
    if [[ „$ALT“ != „$NEU“ ]]; then
    mv -i „$ALT“ „$NEU“
    echo -e “ Verz/Datei ${ALT} wurde in ${NEU} umgewandelt!“
    echo -e „————————————\n“
    fi
    if [ -d „$NEU“ ]; then
    sh $0 „$NEU“
    fi
    done

    for i in „$1″/*
    do
    ALT=“${i}“
    NEU=“$(echo ${i}|sed -e ’s/ß/sz/g‘)“
    if [[ „$ALT“ != „$NEU“ ]]; then
    mv -i „$ALT“ „$NEU“
    echo -e “ Verz/Datei ${ALT} wurde in ${NEU} umgewandelt!“
    echo -e „————————————\n“
    fi
    if [ -d „$NEU“ ]; then
    sh $0 „$NEU“
    fi
    done

    unset IFS
    IFS=BACKUPIFS