ファイル名の日付を個別に変更する必要があります。

ファイル名の日付を個別に変更する必要があります。

日付に基づいてファイルを一覧表示し、ディレクトリ内のファイルの日付を個別に変更したいと思います。

現在のファイル:

abc051217.log

xyz051217.log

ccc051217.log

ddd051217.log

上記では、以下のように日付に名前を変更する必要があるファイルのみを選択したいと思います。

以降のファイル:

abc021217.log

xyz021217.log

ccc021217.log

ddd021217.log

解決策はありますか?

答え1

mmv。を使用すると、mmv標準シェルパターンを使用して"?"および「*」を使用して、「#」+数字(1から始まる)で引用されたゼロ個以上の文字を一致させることができます。

したがって、お客様のユースケースでは

mmv -n '*??????.log' '#102#4#5#6#7.log'

このオプション-nはテスト実行なので、mmv実際にファイルを削除せずに実行するジョブのみを印刷します。実際に望ましい効果が現れることを確認した後-n

答え2

名前を変更するファイルを test.txt test.txt に入れます。

abc051217.log
xyz051217.log
ccc051217.log
ddd051217.log

要件に応じて名前を変更するには、以下のコードを使用してください。

パスワード。


i=021217;sed '/^$/d' test.txt|awk -v i="$i"  '{print "mv" " " $1 " " substr($1,1,3)i".log"}'  | sh

出力

abc021217.log
xyz021217.log
ccc021217.log
ddd021217.log

関連情報