GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So ersetzen Sie Leerzeichen in Dateinamen mit einem Bash-Skript

Sie können detox verwenden von Doug Harple

detox -r <folder>

Verwenden Sie rename (auch bekannt als prename ), bei dem es sich um ein Perl-Skript handelt, das sich möglicherweise bereits auf Ihrem System befindet. Tun Sie es in zwei Schritten:

find . -name "* *" -type d | rename 's/ /_/g'    # do the directories first
find . -name "* *" -type f | rename 's/ /_/g'

Basierend auf Jürgens Antwort und in der Lage, mehrere Ebenen von Dateien und Verzeichnissen in einer einzigen Bindung mit der "Revision 1.5 1998/12/18 16:16:31 rmb1"-Version von /usr/bin/rename zu handhaben (ein Perl-Skript):

find /tmp/ -depth -name "* *" -execdir rename 's/ /_/g' "{}" \;

Ich verwende:

for f in *\ *; do mv "$f" "${f// /_}"; done

Obwohl es nicht rekursiv ist, ist es ziemlich schnell und einfach. Ich bin sicher, jemand hier könnte es rekursiv aktualisieren.

Die ${f// /_} part verwendet den Parametererweiterungsmechanismus von Bash, um ein Muster innerhalb eines Parameters durch eine angegebene Zeichenfolge zu ersetzen. Die relevante Syntax ist ${parameter/pattern/string} . Siehe:https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html oder http://wiki.bash-hackers.org/syntax/pe .


find . -depth -name '* *' \
| while IFS= read -r f ; do mv -i "$f" "$(dirname "$f")/$(basename "$f"|tr ' ' _)" ; done

Ich habe es anfangs nicht richtig hinbekommen, weil ich nicht an Verzeichnisse gedacht habe.


Linux
  1. Wie debuggt man ein Bash-Skript?

  2. Wie überprüfe ich die Teilzeichenfolge in Shell Script Bash?

  3. Wie benenne ich eine Datei unter Linux um?

  4. Woher weiß ich den Namen der Skriptdatei in einem Bash-Skript?

  5. Wie kann man Bash-Skripte in Vim hervorheben?

So lesen Sie eine Datei Zeile für Zeile in Bash

So zeigen Sie GUI-Dialoge in Bash-Skripten mit Zenity an

35 Bash-Skriptbeispiele

So ändern Sie den GNOME-Hintergrund automatisch in Intervallen mit BASH

So führen Sie ein Bash-Skript aus

Verwenden Sie Unterstriche in Dateinamen?