24小时热门版块排行榜    

查看: 770  |  回复: 8

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

代码为:

#!/bin/bash
E0Rh=-0.11887662e1;
E0Ru=-0.22838051e1;
ERuN[0]=0;
awk '{ERuN[$1]=$2;print $1,"#",$2}' E0Rux;
echo ${ERuN
  • };

    可是执行结果却为:
    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
    0

    最后打印ERuN 数组中的值只有一个0, 这是为什么啊?
  • 回复此楼

    » 猜你喜欢

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

    goodluck1982

    铁虫 (初入文坛)

    你这个代码是干什么的?

    发自小木虫Android客户端
    2楼2016-01-12 19:09:59
    已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

    1787487804

    银虫 (正式写手)

    引用回帖:
    2楼: Originally posted by goodluck1982 at 2016-01-12 19:09:59
    你这个代码是干什么的?

    读入数据之后,用公式计算 不同原子数结构的结合能
    一蓑烟雨任平生
    3楼2016-01-12 19:18:37
    已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

    goodluck1982

    铁虫 (初入文坛)

    你把awk和bash混在一起用了,如果你对这二者都不熟最好不要混着用。只用aek即可。

    发自小木虫Android客户端
    4楼2016-01-12 19:28:45
    已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

    goodluck1982

    铁虫 (初入文坛)

    【答案】应助回帖


    感谢参与,应助指数 +1
    liliangfang: 金币+1, 谢谢交流 2016-01-30 17:49:24
    #!/bin/bash
    awk '{
           a[$1]=$2;
         }
        END {
         for(i=2;i<=14;i++) print i, " : ", a
        }'  E0Rux
    5楼2016-01-12 19:52:55
    已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

    goodluck1982

    铁虫 (初入文坛)

    倒数第二行最后是 a
    6楼2016-01-12 19:54:12
    已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

    goodluck1982

    铁虫 (初入文坛)

    是  a [ i ]
    晕,被论坛当成特殊代码了
    7楼2016-01-12 19:54:49
    已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

    1787487804

    银虫 (正式写手)

    引用回帖:
    4楼: Originally posted by goodluck1982 at 2016-01-12 19:28:45
    你把awk和bash混在一起用了,如果你对这二者都不熟最好不要混着用。只用aek即可。

    您的意思是
    echo ${ERuN[ * ]};
    不能喝awk 混用吗
    一蓑烟雨任平生
    8楼2016-01-12 20:31:41
    已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

    goodluck1982

    铁虫 (初入文坛)

    【答案】应助回帖

    ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
    1787487804: 金币+10, 有帮助, 谢谢 2016-01-12 20:38:35
    liliangfang: 金币+1, 谢谢交流 2016-01-30 17:49:30
    引用回帖:
    8楼: Originally posted by 1787487804 at 2016-01-12 20:31:41
    您的意思是
    echo ${ERuN};
    不能喝awk 混用吗...

    不是不能,只是最好不要这样用。
    bash 里的变量和  awk 里的变量不是一回事,从bash 里往 awk 里传数据是比较麻烦的,你需要对 bash 和 awk 比较熟悉才行。

    为了避免错误,全用 awk 处理就足够了。
    9楼2016-01-12 20:36:25
    已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
    相关版块跳转 我要订阅楼主 1787487804 的主题更新
    信息提示
    请填处理意见