日付に基づいてファイルを一覧表示し、ディレクトリ内のファイルの日付を個別に変更したいと思います。
現在のファイル:
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