Я хотел бы скопировать серию похожих файлов из текущего каталога в целевой каталог, файлы в текущем каталоге:
prod07_sim0500-W31-0.2_velocity-models-2D_t80_f0001_ux.hst
prod07_sim0500-W31-0.2_velocity-models-2D_t80_f0001_uz.hst
prod07_sim0500-W31-0.2_velocity-models-2D_t80_f0002_ux.hst
prod07_sim0500-W31-0.2_velocity-models-2D_t80_f0002_uz.hst
prod07_sim0500-W31-0.2_velocity-models-2D_t80_f0003_ux.hst
prod07_sim0500-W31-0.2_velocity-models-2D_t80_f0003_uz.hst
Где sim
от sim0001
до sim0500
и f
от f0001
до f0009
.Мне нужны только f0002
, f0005
и f0008
.Я пишу следующий код:
target_dir="projects/data"
for i in {0001..0500}; do
for s in f000{2,5,8}; do
files="[*]$i[*]$s[*]"
cp $files target_dir
done
done
Я очень новичок в Shell, и мне интересно, как написать $files="[*]$i[*]$s[*]"$
, чтобы он мог соответствовать только f0002
, f0005
и f0008
,Причина, по которой я также использую for i in {0001..0500}; do
, заключается в том, что файлы слишком велики, и я хотел бы убедиться, что вначале я мог получить доступ к некоторым завершенным (например, включая все sim0001).
Редактировать: измененоfor s in f0002 f0005 f0008; do
до f000{2,5,8}
.