我正在尝试使用data.txt的data.txt头中给出的两个in从.nc文件中提取点信息
AID CID
730 285
535 290
736 291如果这段代码有任何问题,你能提供帮助吗?我在widows和anaconda Linux中使用Ubuntu,得到一个错误“参数列表太长”。
ids=`head -6 data.txt | awk '{if(NR>1) print $1}'`
echo $ids
ids=`cat data.txt | awk '{if(NR>1) print $1}'`
for id in $ids
do
aid=`cat data.txt | awk '{if($1=='${id}') print $1}'`
rch=`cat data.txt | awk '{if($1=='${id}') print $2}'`
index=`ncks -v rid ./file.nc | grep "$rch" | sed -e 's/rid\[//g' |awk 'BEGIN{FS="]"}{print $1}'`
echo id=$id aid=$aid rch=$rch index={$index}
ncks -O -v Qout -d rid,$index ./file.nc > temp.nc
/bin/mv temp.nc data_aid${aid}_cid${rch}.nc
done最后,我期望得到;
data_730_285.nc
data_535_290.nc
data_736_291.nc
.......发布于 2019-04-25 08:32:28
我猜这个错误可能来自第二个ids赋值。您可以通过管道传输数据来解决此问题,而不是将其存储在变量中:
tail -n +2 data.txt | while read aid rch
do
# ...
done备注:
aid=$id
ncks是做什么的,但随后的grep "$rch"似乎容易出现误报(数字可以包含在其他数字中(例如,.123也在12345))
/bin/mv temp.nc data_aid${aid}_cid${rch}.nc中,应该类似于/bin/mv temp.nc data_${aid}_${rch}.nchttps://stackoverflow.com/questions/55839636
复制相似问题