Команда awk в цикле bash - распознавание двойных кавычек - PullRequest
0 голосов
/ 16 февраля 2011

Я использую простой сценарий awk для суммирования значения в разбиении четвертого столбца. Работает без проблем.

awk '{split($4,NM,"-");if ($10>1) {TGC+=NM[2]}}END{print TGC}'  somefile.txt

Когда я пытаюсь зациклить его в BASH, он запускается, но дает ответ один.

for i in somedir; do echo $i; awk '{split($4,NM,"-");if ($10>1) {TGC+=NM[2]}}END{print TGC}'  $i  ;done

Проблема в кавычках внутри сплита - как я могу правильно его квалифицировать, чтобы awk распознал сплит?

Приветствие Statler

1 Ответ

0 голосов
/ 16 февраля 2011

Я подозреваю, что вы собирались использовать цикл for для проверки файлов в somedir, а не в самом каталоге:

for i in somedir/*; do 
  echo "$i"
  awk '
    $10 > 1 {split($4, NM, "-"); TGC += NM[2]}
    END {print TGC}
  '  "$i"
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...