Ganz einfach.
Wie kann ich umbenennen?
05_h.png
06_h.png
zu
05_half.png
06_half.png
Zumindest denke ich, dass es einfach ist, aber es ist schwer für Google, wenn Sie es nicht bereits wissen.
Vielen Dank....
Verwenden Sie einfach bash, ohne dass Sie externe Befehle aufrufen müssen.
for file in *_h.png
do
mv "$file" "${file/_h.png/_half.png}"
done
Nicht hinzufügen #!/bin/sh
Für diejenigen, die diesen One-Liner brauchen:
for file in *.png; do mv "$file" "${file/_h.png/_half.png}"; done
Versuchen Sie den Befehl rename
:
rename 's/_h.png/_half.png/' *.png
Update:
verwendungsbeispiel:
einige Inhalte erstellen
$ mkdir /tmp/foo
$ cd /tmp/foo
$ touch one_h.png two_h.png three_h.png
$ ls
one_h.png three_h.png two_h.png
testlösung:
$ rename 's/_h.png/_half.png/' *.png
$ ls
one_half.png three_half.png two_half.png
for f in *.png; do
fnew=`echo $f | sed 's/_h.png/_half.png/'`
mv $f $fnew
done
Suchen Sie eine reine bash-Lösung? Es gibt viele Ansätze, aber hier ist einer.
for file in *_h.png ; do mv "$file" "${file%%_h.png}_half.png" ; done
Dies setzt voraus, dass die einzigen Dateien im aktuellen Verzeichnis, die mit _h.png
enden, die sind, die Sie umbenennen möchten.
Viel genauer
for file in 0{5..6}_h.png ; do mv "$file" "${file/_h./_half.}" ; done
Vorausgesetzt, diese beiden Beispiele sind Ihre einzigen. Dateien.
Für den allgemeinen Fall ist das Umbenennen der Datei in hatwarabgedecktvorher .
Verwenden Sie das rename
-Dienstprogramm, das in Perl ..__ geschrieben ist. Möglicherweise ist es jedoch standardmäßig nicht verfügbar ...
$ touch 0{5..6}_h.png
$ ls
05_h.png 06_h.png
$ rename 's/h/half/' *.png
$ ls
05_half.png 06_half.png
Ich hatte eine ähnliche Frage: Im Handbuch wird umbenannt als beschrieben
rename [option] expression replacement file
so können Sie es auf diese Weise verwenden
rename _h _half *.png
Im Code: '_ h 'ist der Ausdruck, nach dem Sie suchen. '_ half 'ist das Muster, das Sie ersetzen möchten. '* .png' ist der Dateibereich, den Sie nach Ihren möglichen Zieldateien suchen.
Hoffe das kann helfen c:
for i in *_h.png ; do
mv $i `echo "$i"|awk -F'.' '{print $1"alf."$2}'`
done
Ein anderer Ansatz kann manuell mit der Option Stapelumbenennung verwendet werden
Klicken Sie mit der rechten Maustaste auf die Datei -> File Custom Commands -> Batch Rename Und Sie können h ersetzen. mit der Hälfte.
Dies funktioniert für Linux-basierte GUI mit WinSCP etc
Einzeiler:for file in *.php ; do mv "$file" "_$file" ; done
Verwenden Sie das Dienstprogramm rename
:
[email protected]:/tmp/foo $ touch 05_h.png 06_h.png
[email protected]:/tmp/foo $ rename 's/_h/_half/' *
[email protected]:/tmp/foo $ ls -l
total 0
-rw-r--r-- 1 rc rc 0 2011-09-17 00:15 05_half.png
-rw-r--r-- 1 rc rc 0 2011-09-17 00:15 06_half.png