
これに似たファイルがたくさんあります:
56.mp3?referredby=rss
私がやりたいのは、?referredby=rss
次のようになるように削除することです:
56.mp3
どうすればいいでしょうか?
答え1
Perlをお持ちならrename
、
rename 's/\?referredby=rss//' ./*referredby=rss
とutil-linux
rename
:
rename '?referredby=rss' '' ./*referredby=rss
答え2
エスケープ(glob式では特別な意味を持つ)を除けば、?
これは他のファイルの名前を変更するのとまったく同じです。たとえば、単純なシェルループを使用できます。
for f in *.mp3\?referredby=rss; do mv -- "$f" "${f%\?*}"; done
ここで、は${f%\?*}
、一致する最短の末尾の要素を削除するシェルパラメータ展開です。\?*