Сценарии оболочки ---- Требуется коррекция - PullRequest
1 голос
/ 05 мая 2011

Мне нужна коррекция в синтаксисе моей оболочки (приведена ниже)

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 и, наконец, после выполнения всех операций деления значение умножается на 1 млрд.

Спасибоавансовый.

Ответы [ 2 ]

3 голосов
/ 05 мая 2011

Переменные $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

Редактировать: также исправьте умножение, как указано Рагурамом.

1 голос
/ 05 мая 2011

Я думаю, что вы должны изменить / * на *, когда вы умножите значение на 1 млрд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...