2

名前を変更する必要のあるファイルがたくさんあります。名前は現在「sink-foobar」です。「シンク-」を削除したいのですが。bashでこれを行う方法があるはずですが、私には運がありません。

4

2 に答える 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 に答える