1

ディレクトリ内の画像ファイルから「_1331045422」を削除する必要があります。

たとえば、私の画像ファイル名は次のようになります: message-16-error_1331045422.png

この方法ですべての画像ファイルの名前を変更するスクリプトを実際に実行しました。また、他のファイルがあります(正しい名前の画像ファイル、正しい名前のjsファイルとcssなど)

他の人に影響を与えずに、すべての画像ファイルの名前を「_1331045422」に変更するコマンドを教えてください。

編集: .png ファイルのファイル名が間違っているだけではありません。gifやjpegもあります。

4

4 に答える 4

3

rename コマンドを使用できます。

rename 's/_\d+(\..{1,3})/$1/g' *

拡張子が 3 文字を超えるファイルがある場合は、{} の間の範囲を変更できます。

一部のシステムでは、名前変更コマンドが少し異なることに注意してください。ここを見てください: https://superuser.com/questions/70217/is-there-a-linux-command-like-mv-but-with-regex

于 2012-06-11T10:05:22.107 に答える
0

これを試す前に、ファイルのバックアップを作成してください!!

#!/bin/bash
for i in *.png; 
    do mv $i `echo $i | sed  "s/_[0-9]\+\.png^/\.png/"`
done
于 2012-06-11T09:40:28.557 に答える
0
#!/usr/bin/python
# message-16-error_1331045422.png --> message-16-error.png
# Usage: python foo.py dir_to_change
import os, sys
dir=sys.argv[1]
for file in os.listdir(dir):
    if not file.endswith('.png'):
        continue
    new, end = file.rsplit('_', 1)
    new=u'%s.png' % new
    file_old=os.path.join(dir, file)
    file_new=os.path.join(dir, new)
    os.rename(file_old, file_new)
于 2012-06-11T09:42:10.800 に答える
0

rnm を使用:

rnm -rs '/_\d+(\.)(png|gif|jpg|jpeg)/\1\2/' *

その他の例はこちら.

于 2016-05-07T08:18:48.840 に答える