次のようなファイルがたくさんあります。
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%\?*}
一致の最短末尾要素を削除するためのシェルパラメータ拡張はどこにありますか?\?*