Ich bin hier aus Optionen laufen ..Bash-Skript - alle Dateien in einem Verzeichnis umbenennen * Raum * enthält() * -
hatte ich einen Blick auf die verschiedenen Beiträge hier über das Thema, aber aus irgendeinem Grund Die Antworten funktionierten nicht für mich.
Ich möchte ein einfaches Skript, um alle Dateien in einem bestimmten Ordner in alles umzubenennen! sag einen Zähler nr. dh:
1.jpg
2.pdf
3.exe
Ich brauche dies für einen Teil von meinem Skript, da ich nicht die Dateien verschieben können, da diese Sonderzeichen :
Ich benutze cygwin auf einem win7 Maschine Werden die Dateien von win7 dh erstellt:
test01.jpg
test01 (2).jpg
test01 (2) - Copy.jpg
Dies ist der Teil des Skripts, die ich brauche, damit es funktioniert: Ich wollte nur
pathF="d:/scripts/img/_sandbox/depFrom"
searchAll=$(find $pathF -type f | egrep ".*")
ct=0
for fAll in $searchAll; do
# echo -e $fAll
# echo -e "$ct"
old=$fAll
# new=$(sed "s/\ //g" $fAll)
mv -v $old $ct #$new
((ct++))
done
In diesem Beispiel behandeln Räume, aber ich muss mit() - und Leerzeichen umgehen, um alle zu decken. Diese
ist die Ausgabe in meiner Konsole: Aus irgendeinem Grund scheint es zu stoppen/Split im Raum zwischen und nach der Erweiterung.
Jede Hilfe wird sehr geschätzt.
============================================== ====================
EDIT: habe ich versucht, dies:
pathF="d:/scripts/img/_sandbox/depFrom"
searchAll=$(find $pathF -type f -printf "%f\n")
for fAll in $searchAll; do
echo -e $fAll
done
Und der Ausgang ist dies:
test01
(2)
-
Copy.jpg
Es gibt nur eine Datei im Ordner !!
$ ls depFrom/
test01 (2) - Copy.jpg
$ find depFrom/ -type f -printf "%f\n"
test01 (2) - Copy.jpg
'x = 0; für i in * .jpg; mach mv" $ i "$ ((++ x)). Jpg; done'? – 123
Ich habe das gleiche Ergebnis, dies würde nur den Namen der Datei erhöhen. Das Problem scheint darin zu liegen, die Dateien zu lesen. –
Es gibt so viele Race Conditions, die Sie nicht einmal in Betracht gezogen haben, die eine zuverlässige Lösung fast unmöglich machen. Aber warum fragst du nicht stattdessen nach dem [kurzen Dateinamen] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247.aspx#short_vs._long_names)? Es enthält garantiert keine Leerzeichen. – IInspectable