【发布时间】:2016-12-08 00:47:37
【问题描述】:
我在两个目录中有 netCDF 文件,我想最终在其中找到一个变量并进行比较,如果不相等,我想删除这两个文件。到目前为止我所拥有的:
dir1=(/working/test/temp1/*.nc)
dir2=(/working/test/temp2/*.nc)
这里我试图将 grep 的输出存储到一个数组中。我在网站上找到了这些方法,但都不起作用。
for ((i = 0; i < ${#dir1[@]}; ++i)); do
dir1_arr=($(ncdump -h "$dir1" | grep "Temperature = "))
done
for i in $dir1; do
dir1_arr=($(ncdump -h "$i" | grep "Granules = "))
done
我不确定这是否是正确的方法,但我想比较应该存储在两个单独数组中的颗粒值,如果颗粒不匹配,则删除相应的文件。首先,我需要完成将 grep 的输出存储在数组中的步骤。
【问题讨论】:
-
当我执行
echo ${dir1[@]}时,屏幕上没有任何内容。 -
您的
dir1数组为空。您关心的目录真的是绝对路径/working/...还是应该只是相对路径working/...? -
@EdMorton 我希望数组包含该目录路径中的 netCDF 文件。应该是相对路径吧。
-
@anubhava 是的,确实显示所有文件的回显
-
echo "${dir1[@]}"工作吗?