/users/wahasan
このディレクトリから複数のファイルをに移動(保存)したいと思います/users/wahasan/old
。アーカイブされたファイルは自動的に日付を更新する必要があります。
ファイル形式はCHKBOI.pos
、、、CHKUTI.pos
などCHKSBI.pos
です。ここCHK
と.pos
すべてのファイル名に共通です。
日付スタンプを使用してソースディレクトリからターゲットディレクトリにすべてのファイルを移動するには、シェルスクリプトが必要です。
答え1
純粋なBASHバージョン:
dir='/users/wahasan';stamp=$(date +%Y%m%d_%H%M%S); for file in $dir/CHK*.pos; do nn=${file/CHK/old/CHK}; nn=${nn/pos/pos_$stamp}; echo "$file ---> $nn";mv $file $nn; done
一度試してみてください。効果があるでしょう。
緊急治療室:
dir='/users/wahasan'; ## path to work directory
stamp=$(date +%Y%m%d_%H%M%S); ## date_time stamp
for file in $dir/CHK*.pos; do ## getting list of all files to be moved
nn=${file/CHK/old/CHK}; ## generating new absolute path [1] (adding '/old/')
nn=${nn/pos/pos_$stamp}; ## generating new absolute path [2] (adding stamp)
echo "$file ---> $nn"; ## showing what will be moved to what (can be removed)
mv $file $nn; ## moving
done