
Ich habe viele Dateien, die ähnlich wie diese aussehen:
56.mp3?referredby=rss
Ich möchte sie entfernen, ?referredby=rss
sodass sie folgendermaßen aussehen:
56.mp3
Wie würde ich das machen?
Antwort1
Wenn Sie Perl haben rename
, ist es so einfach wie
rename 's/\?referredby=rss//' ./*referredby=rss
Mit util-linux
rename
:
rename '?referredby=rss' '' ./*referredby=rss
Antwort2
Abgesehen vom Escapen ?
(das in Glob-Ausdrücken eine besondere Bedeutung hat) unterscheidet sich dies nicht wirklich vom Umbenennen anderer Dateien: Sie könnten beispielsweise eine einfache Shell-Schleife verwenden
for f in *.mp3\?referredby=rss; do mv -- "$f" "${f%\?*}"; done
wobei es ${f%\?*}
sich um eine Shell-Parametererweiterung handelt, die das kürzeste nachfolgende Element entfernt, das übereinstimmt\?*