名前を変更する必要のあるファイルがたくさんあります。名前は現在「sink-foobar」です。「シンク-」を削除したいのですが。bashでこれを行う方法があるはずですが、私には運がありません。
1478 次
2 に答える
6
単純 :
rename 's/sink-//' *files
これはPerlのものでありprename
、Ubuntuや多くのディストリビューションにデフォルトでインストールされています。
正しいものがあることを確認するには、次のコマンドを実行します。
file $(readlink -f $(type -p rename)) | grep &>/dev/null -i perl &&
echo "Good version" ||
echo "ELF version, not the good one"
Debianおよび派生(Ubuntu ...)では、次のようにデフォルトとして設定できます:
update-alternatives --set rename /usr/bin/vendor_perl/rename
https://metacpan.org/module/renameを参照してください
于 2012-12-01T17:01:15.437 に答える
6
それは常に文字通り sink-
ですか?その場合は、パラメータ拡張とストリッププレフィックスパターンを使用します。
NAME='sink-foobar'
echo ${NAME#sink-}
したがって、完全なスクリプトとして:
for f in sink-*; do
mv -- "$f" "${f#sink-}";
done
于 2012-12-01T17:02:27.090 に答える