Sie können es in der Shell tun, ohne ein externes Programm mv "$f" "${f%.txt}.csv"
aufzurufen
1
Dies überspringt die Dateien beginnend mit.
Nicolas Barbulesco
1
@glennjackman Danke. Ich verstehe die Syntax immer falsch, wollte nicht posten, ohne ein Unix-System zum Testen zu haben.
Nohillside
@NicolasBarbulesco Stimmt, aber angesichts der besonderen Rolle, die .somethingDateien in der Shell spielen, würde ich nicht empfehlen, Dateinamen trotzdem mit einem Punkt zu beginnen. Wenn Sie wirklich müssen, können Sie for f in .*.txt; dostattdessen immer laufen .
Nohillside
2
Wenn Sie Punktdateien einschließen möchten shopt -s dotglobund die Dateierweiterung diese aufnimmt.
Glenn Jackman
1
Das funktioniert auch gut:
# change to the Zsh
zsh
# load the built-in zmv function
autoload -U zmv
# rename the files
zmv '(*).txt''$1.csv'
ls *.txt |awk '{print "mv "$1" " substr($1,1,(index($1,".txt")))"csv"}'|sh
Befehlserklärung:
ls *.txt listet Dateien auf, die mit txt enden
| awk '{print "mv "$1" " substr($1,1,(index($1,".txt")))"csv"} Gibt den Befehl aus, mit dem die mit txt aufgelisteten vorherigen Dateien in csv umbenannt werden können
| sh führt den zuvor gedruckten Befehl aus und benennt so die Dateien effektiv um
Hinweis: Wenn Sie alle Dateien einschließlich versteckter Dateien (die mit beginnen .) auflisten möchten, verwenden Sie ls -a *.txtstattdessen
osascript
.Antworten:
Sie müssen alle Dateien durchlaufen
Wenn Sie Dateien mit Namen haben, die ebenfalls mit a beginnen,
.
müssen Sie diese möglicherweise ausführenquelle
mv "$f" "${f%.txt}.csv"
.
.something
Dateien in der Shell spielen, würde ich nicht empfehlen, Dateinamen trotzdem mit einem Punkt zu beginnen. Wenn Sie wirklich müssen, können Siefor f in .*.txt; do
stattdessen immer laufen .shopt -s dotglob
und die Dateierweiterung diese aufnimmt.Das funktioniert auch gut:
quelle
.
Befehlserklärung:
ls *.txt
listet Dateien auf, die mit txt enden| awk '{print "mv "$1" " substr($1,1,(index($1,".txt")))"csv"}
Gibt den Befehl aus, mit dem die mit txt aufgelisteten vorherigen Dateien in csv umbenannt werden können| sh
führt den zuvor gedruckten Befehl aus und benennt so die Dateien effektiv umHinweis: Wenn Sie alle Dateien einschließlich versteckter Dateien (die mit beginnen
.
) auflisten möchten, verwenden Siels -a *.txt
stattdessenquelle