change to more special chars
This commit is contained in:
parent
90c74d99cf
commit
bbfdfbd97d
@ -4,8 +4,8 @@
|
||||
#
|
||||
# Rename Special Characters to Underscores
|
||||
#
|
||||
# Skript zum Ersetzen von Sonderzeichen (|, <, >) durch Unterstriche (_)
|
||||
# in Datei- und Ordnernamen unter macOS und Linux
|
||||
# Skript zum Ersetzen von Sonderzeichen (|, <, >, /, \, *, ?, ") durch
|
||||
# Unterstriche (_) in Datei- und Ordnernamen unter macOS und Linux
|
||||
#
|
||||
# Dieses Skript durchsucht rekursiv einen angegebenen Ordner und benennt
|
||||
# alle Dateien und Unterordner um, die problematische Sonderzeichen enthalten.
|
||||
@ -45,8 +45,8 @@ TARGET_DIR=""
|
||||
show_help() {
|
||||
echo "Verwendung: $0 [OPTIONEN] ZIELORDNER"
|
||||
echo ""
|
||||
echo "Ersetzt Sonderzeichen (|, <, >) durch Unterstriche (_) in allen"
|
||||
echo "Datei- und Ordnernamen."
|
||||
echo "Ersetzt Sonderzeichen (|, <, >, /, \\, *, ?, \") durch Unterstriche (_)"
|
||||
echo "in allen Datei- und Ordnernamen."
|
||||
echo ""
|
||||
echo "Optionen:"
|
||||
echo " -d, --dry-run Testlauf ohne tatsächliche Umbenennung"
|
||||
@ -64,11 +64,11 @@ clean_name() {
|
||||
local name="$1"
|
||||
|
||||
# 1. Ersetze alle Varianten von Sonderzeichen mit Leerzeichen
|
||||
# Behandelt: "|", " |", "| ", " | ", "<", ">", " <", "> ", etc.
|
||||
name=$(echo "$name" | sed -E 's/ *[|<>] */ /g')
|
||||
# Behandelt: |, <, >, /, \, *, ?, " mit optionalen Leerzeichen darum
|
||||
name=$(echo "$name" | sed -E 's# *[|<>/\\*?"]+ *# #g')
|
||||
|
||||
# 2. Ersetze verbleibende Sonderzeichen durch Leerzeichen
|
||||
name=$(echo "$name" | tr '|<>' ' ')
|
||||
name=$(echo "$name" | tr '|<>/\\*?"' ' ')
|
||||
|
||||
# 3. Ersetze mehrfache Leerzeichen durch einzelnes Leerzeichen
|
||||
name=$(echo "$name" | sed -E 's/ +/ /g')
|
||||
@ -181,7 +181,7 @@ while IFS= read -r -d '' item; do
|
||||
else
|
||||
((count_errors++))
|
||||
fi
|
||||
done < <(find "$TARGET_DIR" -depth -print0 | grep -zE '[|<>]')
|
||||
done < <(find "$TARGET_DIR" -depth -print0 | grep -zE '[|<>/\\*?"]')
|
||||
|
||||
# Zusammenfassung
|
||||
echo ""
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user