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