2016-09-01 15 views
0

2つのファイル名の名前を毎週固定ファイル名に変更する必要があるという要件があります。より良い説明することスクリプトで日付の接尾辞を持つファイルの名前を共通のファイル名に変更する

は、毎週私は形式で3つのファイルを受信します。元のファイルを削除せずに

File_ABC.dat 
File_DEF.dat 
File_GHI.dat 

File_ABC_20160822.TXT.pgp 
File_DEF_20160822.TXT.pgp 
File_GHI_20160822.TXT.pgp 

は、私は、ファイルの名前を変更するために、小さなスクリプトを実行する必要があります配信されたファイルのログを保持する必要があるためです。

問題は、毎週ファイルに新しい日付サフィックスが付いてくるため、スクリプトは現在のシステム日付をYYYYMMDD形式で選択する必要があるということです。

+0

UNIX環境で実行するスクリプトが必要 – user6784934

+0

「元のファイルを削除せずに」する場合は、File_ABC_20160822.TXT.pgpをFile_ABC.datに**コピー**したいですか? 'mv'ではなく' cp'を使用してください。がんばろう。 – shellter

+0

あなたが何をしようとしたのか、何がうまくいかなかったのかを指定する必要があります。 –

答えて

1

名前を変更しているときは、ファイル名を超えるループが目的の名前を取得するにはbashパラメータ展開を使用することができます。

for f in File_*_*.TXT.pgp; do echo cp -i "$f" "${f%_*}.dat"; done 

は、上記実際のアクションのために、ドライ・ランを行います、echo削除:

for f in File_*_*.TXT.pgp; do cp -i "$f" "${f%_*}.dat"; done 
+0

"元のファイルを削除しない"ため、私は 'cp'を使います。 – choroba

+0

@choroba Opps、thatedededed ..thanks – heemayl

関連する問題