Shell,复制同名文件
Shell, copy files with similar names
我想从当前目录复制一系列类似的文件到目标目录,当前目录下的文件是:
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
和 [=21] =].我也用for i in {0001..0500}; do
的原因是文件太大,我想确保我能在开始时访问一些完整的(例如,包括所有sim0001)。
编辑:将 for s in f0002 f0005 f0008; do
更改为 f000{2,5,8}
。
我想从当前目录复制一系列类似的文件到目标目录,当前目录下的文件是:
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
和 [=21] =].我也用for i in {0001..0500}; do
的原因是文件太大,我想确保我能在开始时访问一些完整的(例如,包括所有sim0001)。
编辑:将 for s in f0002 f0005 f0008; do
更改为 f000{2,5,8}
。