Ich habe folgende Dateien:
boxScoreBaseball.html.php
boxScoreBasketball.html.php
boxScoreBowling.html.php
boxScoreCheer.html.php
boxScoreCrew.html.php
boxScoreCrossCountry.html.php
boxScoreEquestrian.html.php
boxScoreFieldHockey.html.php
boxScoreFootball.html.php
boxScoreGolf.html.php
boxScoreGymnastics.html.php
boxScoreHockey.html.php
boxScoreLacrosse.html.php
boxScoreRugby.html.php
boxScoreSkiing.html.php
boxScoreSoccer.html.php
boxScoreSoftball.html.php
boxScoreSwimming.html.php
boxScoreTennis.html.php
boxScoreTrack.html.php
boxScoreVolleyball.html.php
boxScoreWaterPolo.html.php
boxScoreWrestling.html.php
Ich möchte den boxScore
Teil von jeder Datei entfernen, sodass beispielsweise boxScoreBaseball.html.php
Folgendes würde baseball.html.php
: Was ist der einfachste Weg, dies zu tun?
Antwort1
Funktioniert wahrscheinlich nur mit Bash:
for i in boxScore*; do mv $i ${i#boxScore}; done
Ich verwende diese Referenz immer für schnelle und einfache Bash-Sachen:http://aurelio.net/shell/canivete/en/(siehe Abschnitt 4).
Antwort2
Eine weitere Möglichkeit besteht darin mmv
, (siehediesen Artikel für weitere Beispiele).
Für das gegebene Beispiel:
mmv "boxScore*.html.php" "#1.html.php"
Antwort3
Sie können nicht alles direkt umbenennen, Sie müssen ein Bash-Skript verwenden. Vielleicht sind diese Links für Sie nützlich:
Antwort4
Führen Sie dieses kleine Shell-Skript aus:
for file in *; do echo "${file:8}" | sed -e 's/^\([A-Z]\)\(.*\)/\l\1\2/' | xargs mv "$file"; done
Wir durchlaufen jede Datei im aktuellen Verzeichnis. Zuerst geben wir den Dateinamen ohne die ersten 8 Zeichen aus. Dann verwenden wir , sed
um das erste Zeichen in Kleinbuchstaben umzuwandeln. Der sed
Suchausdruck bedeutet „Zeilenanfang, Gruppe 1: ein Großbuchstabe, Gruppe 2: der Rest“, und der Ersetzungsausdruck bedeutet „Kleinbuchstaben passend zu Gruppe 1, und dann Gruppe 2 anhängen“. Der letzte Teil verschiebt einfach die alte Datei in den umgewandelten Dateinamen.