24小时热门版块排行榜    

查看: 609  |  回复: 3

1787487804

银虫 (正式写手)

[求助] awk编程问题 已有1人参与

输入文件E0Rux


2    -.88728063E+01
3    -.15344694E+02
4    -.22385101E+02
5    -.29684515E+02
6    -.37215370E+02
7    -.44609685E+02
8    -.54054073E+02
9    -.60238539E+02
10    -.67770768E+02
11    -.74804487E+02
12    -.83577595E+02
13    -.90188046E+02
14    -.98811852E+02

输入文件 E0

2 0Rh -.88712428E+01 1Rh -.78791980E+01 2Rh -.65535318E+01
3 line -.14260966E+02 others -.14260966E+02 top -.14262616E+02 tri -.14260966E+02
4 cube -.21055435E+02  diamond/cute -.20240383E+02  diamond/obei -.19806691E+02
5 gs/bott -.28037227E+02 gs/top -.28510553E+02

处理程序

#!/bin/bash
E0Rh=-1.1887662, E0Ru=-2.2838051;
awk '{ERuN[$1]=$2}END{for(i=2;i<=14;i++){print ERuN}}' E0Rux;
awk  '{for(i=1;i<=NF;i++){if($i<0){printf("%g ,ERuN[%d]=%g ",$i-ERuN[$1]-E0Rh+E0Ru,i,ERuN[$1])} else{printf "%s ",$i}}printf "\n"}' E0 >ERhsubstitution;

输出文件ERhsubstitution


2 0Rh -8.87124 ,ERuN[3]=0 1Rh -7.8792 ,ERuN[5]=0 2Rh -6.55353 ,ERuN[7]=0
3 line -14.261 ,ERuN[3]=0 others -14.261 ,ERuN[5]=0 top -14.2626 ,ERuN[7]=0 tri -14.261 ,ERuN[9]=0
4 cube -21.0554 ,ERuN[3]=0 diamond/cute -20.2404 ,ERuN[5]=0 diamond/obei -19.8067 ,ERuN[7]=0
5 gs/bott -28.0372 ,ERuN[3]=0 gs/top -28.5106 ,ERuN[5]=0

计算结果不正确,正确结果 第一行 应为 2 0Rh -1.0937754 ......
且输出文件中数组的值都为零,令我很不解,哪里不对?
回复此楼

» 猜你喜欢

一蓑烟雨任平生
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snail594

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★
1787487804: 金币+5, 有帮助 2016-04-20 18:09:09
建议考虑用python来做,更方便,数值计算也更强大。awk很容易写错了字符,语法更严格。
Inlearningwetrust
2楼2016-01-22 11:40:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1787487804

银虫 (正式写手)

引用回帖:
2楼: Originally posted by snail594 at 2016-01-22 11:40:54
建议考虑用python来做,更方便,数值计算也更强大。awk很容易写错了字符,语法更严格。

Linux系统下究竟哪种用起来最方便啊?
一蓑烟雨任平生
3楼2016-01-22 16:21:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snail594

金虫 (小有名气)

引用回帖:
3楼: Originally posted by 1787487804 at 2016-01-22 16:21:22
Linux系统下究竟哪种用起来最方便啊?...

都可以,Python很多linux天然支持
Inlearningwetrust
4楼2016-05-06 10:05:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 1787487804 的主题更新
信息提示
请填处理意见