- 论坛徽章:
- 3
|
本帖最后由 tengfei0311 于 2015-09-10 21:08 编辑
我有300多个.dat的文件,第一列为每一层的厚度H,第二三列分别为速度V。
下面是一个实例文件,假如这个文件中有24层厚度值(每一行值代表一层)。
2 5.9439 3.3152
2 5.9516 3.3199
2 5.9617 3.325
2 5.9637 3.3263
2 5.9536 3.3209
2 5.9354 3.3105
2 5.9163 3.3
2 5.907 3.2947
2 5.9141 3.2988
2 5.9431 3.3147
2 6.0251 3.3607
2 6.1413 3.4255
2 6.2855 3.5061
2 6.4498 3.5977
2 6.6246 3.6952
2 6.8015 3.7936
2 6.9716 3.8885
2 7.1284 3.9761
2 7.2665 4.0532
2 7.3827 4.118
5 7.4744 4.1691
5 7.5414 4.2063
5 7.5833 4.2295
10 7.6021 4.2404
我现在想把第一列累加,假如我现在要提取深度为h=10的速度 那么就第一列前五行值相加等于10,打印文件名和第三列值3.3209
如果我要提取h=50的速度 那么就是前面22行值相加等于50,同时打印第三列4.2063
该怎么完成呢?
求h=10,打印对应的值
code:
for File in `ls *.dat`
awk '{sum += $1, sum=10};END {print FILENAME,$3} $File >>10.txt
done
不知道这个求和等于10,50这个怎么实现?菜鸟求高手指教。
|
|