Shell Scripting ----需要更正

时间:2011-05-05 08:29:44

标签: shell scripting

我需要修改我的shell语法(如下所示)

cat $dfn | gawk
'{for (i = 1; i <= NF; i += 1)
 {printf "%f\t", ((($i / $tag) / $bn ) */ 1000000000);}
 printf "\n"}'>fn

其中$dfn是文件名$tag$bn包含值。并且fn是输出定向的文件。

注意:此行的作用是,它采用文件名(n乘m维并在每个单元格中包含一个值)将单元格中的每个值除以$tag变量答案中的值再分为$bn中的值,最后在执行所有除法运算后,该值乘以10亿。

提前谢谢你。

2 个答案:

答案 0 :(得分:3)

变量$tag$bn指的是行中的字段。我假设你真的希望它们是环境变量。将它们作为变量传递给awk:

cat $dfn | 
    gawk -v tag="$tag" -v bn="$bn" '{
      for (i = 1; i <= NF; i += 1) {
        printf "%f\t", ((($i / tag) / bn ) * 1000000000)
      }
      printf "\n"
    }'>fn

编辑:同样修复Raghuram指示的乘法。

答案 1 :(得分:1)

我认为您应该将值乘以10亿时将/ *更改为*。