複数のファイルをmv /名前に変更し、その名前に現在の日付を追加できるようにRed Hatのbashスクリプトを変更する必要があります。たとえば、次のような大容量ファイルがあります。
人BSS4C.SASS.CCAC.I101010.P211008
人BSS4C.SASS.CSVC.I102210.P211008
(次から始まる28個のファイルがあります。PBSS4C。*と*で終わる.P211008)
このファイルに人211008 は処理日を示します。処理日をファイル名の現在の日付に置き換えて置き換える必要があります。人そして時間ファイル名の先頭に。
予想される結果:
時間BSS4C.SASS.CCAC.I101010.P211011
時間BSS4C.SASS.CSVC.I102210.P211011
よろしくお願いします。
答え1
アクセス権がある場合perl-rename
(通常はrename
Debianベースのシステムで呼び出されます)、次のことができます。
rename -n "s/^P/T/; s/\.P211008$/\.P$(date +'%y%m%d')/" PBSS4C.*P211008
これにより、実際に名前を変更せずに実行する変更のみが印刷さ-n
れます。rename
目的の結果が得られると確信している場合は、それを除いてそのままにしてください-n
。
ない場合は、perl-rename
次のことができます。
date=$(date +'%y%m%d')
for i in PBSS4C.*P211008; do
newName=${i/P/T}
newName=${newName/.P211008/}
echo mv -- "$i" "$newName."P"$date";
done
ここで実行し、必要に応じて動作することを確認したら、echo
実際にファイル名を変更せずに再実行してください。