Bashスクリプトを使用して複数のLinuxファイルの名前を変更する方法

Bashスクリプトを使用して複数のLinuxファイルの名前を変更する方法

私は持っています

123myfile123.jpg
123456myfile567.jpg

最初のアルファ文字の前のすべてを削除したいと思います。

myfile123.jpg
myfile567.jpg

0〜9をすべて削除することがあります。

mv '123myfile123.jpg' $(echo '123myfile123.jpg' | sed -e 's/[0-9]//g')

myfile,jpg私に必要な結果myfile123.jpg

これにご協力いただきありがとうございます。

ベストアンサー1

これは単なる提案です。これを行うより効率的な方法があるかもしれませんが、これが役に立つことを願っています。

for i in $(find . -type f -name '*.jpg'); do mv -v $i $(echo $i | sed 's/\.\/[0-9]\+\(.*.jpg\)/\1/g'); done

コマンドの簡単な説明:

まず、各ファイルに一致するfindコマンドの各結果を繰り返します。.jpg

出力例:

./123myfile567.jpg
./123456myfile567.jpg

その後、\.\/[0-9]\+\(.*.jpg\)正規表現は次のことを行います。

  • ./最初から一致しました。
  • 私は以下を使用して1つ以上を一致させます[0-9]+
  • 使いたい部分を選んで()後で呼びます\1

[編集する]

まだ一つあります。ツール呼び出されrename、正規表現の使用に基づいています。私はそれが何人かの人々に役立つことを願っています。

おすすめ記事