我想使用自动程序提取分布在各个库中的一些文件。
我的文件已被删除:
"dns_lata_X.sauv.lata.0.PRESSURE"
"dns_lata_X.sauv.lata.0.RHO"
"dns_lata_X.sauv.lata.0.VELOCITY"
其中 X 是 0 到 1500 之间的数字。
它们分布在名为 的剧目中repY
,其中 Y 是 39 到 69 之间的数字。
每个库包含每种类型(PRESSURE、RHO 和 VELOCITY)大约 50 个文件,并且位于表示的路径中path/instantaneous_fields/
。
rep39
包含:
dns_lata_X.sauv.lata.0.PRESSURE
dns_lata_X.sauv.lata.0.RHO
dns_lata_X.sauv.lata.0.VELOCITY
对于 X 从 1 到 Z0,其中 Z0 约为 50(可以在 46 到 54 之间)。
rep40
包含:
dns_lata_X.sauv.lata.0.PRESSURE
dns_lata_X.sauv.lata.0.RHO
dns_lata_X.sauv.lata.0.VELOCITY
对于 X 从 Z0+1 到 Z1,其中 Z1 约为 100(可以在 96 到 104 之间)。
rep41
包含:
dns_lata_X.sauv.lata.0.PRESSURE
dns_lata_X.sauv.lata.0.RHO
dns_lata_X.sauv.lata.0.VELOCITY
对于 X 从 Z1+1 到 Z2。ETC
我只想将以十进制数字(X = 10,X = 20,X = 30,...,X = 1500)为特征的文件复制到名为“selected_files”的新目录中,位于同一路径:path/instantaneous_fields/
。
我不知道如何只选择十年数字。你可以帮帮我吗?
此外,由于每个文件重2.5 GB,复制的体积很大(2.5GB * 3种文件* 150个文件= 1.125 TB),我正在寻找一种比现有命令更适合的命令cp
。
我有算法,但不了解 bash 语法:
for Y from 39 to 69
cd repY
max_X = X maximum
for X from 0 to max_X by step of 10
cp dns_lata_X.sauv.lata.0.PRESSURE dns_lata_X.sauv.lata.0.RHO dns_lata_X.sauv.lata.0.VELOCITY ../selected_files