awk, если / else выдает ошибку - PullRequest
0 голосов
/ 31 мая 2018

Я попробовал эту единственную команду для файла CSV, и она хорошо работает.

awk -F, '$44==0 {sum += $45 } END { print sum}' Consolidated.csv

8448089

В основном это выглядит для поля 44 в CSV-файле, и, если оно совпадает, оно суммирует значения в поле 45.

Я хотел расширить эту логику, когда значение поля 44 изменяется между 0 и 4, и, следовательно, хотел создать условие if-else путем расширения вышеуказанной логики, но оно не было успешным,Может ли кто-нибудь указать мне правильное направление?

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Вы можете использовать следующие awk затем.

Если вы хотите включить 0 и 4 значения для сравнения.

awk -F, '$44>=0 && $44<=4{sum += $45 } END { print sum}' Consolidated.csv

Если вы не хотите включать 0и 4 значения в сравнении.

awk -F, '$44>0 && $44<4{sum += $45 } END { print sum}' Consolidated.csv
0 голосов
/ 31 мая 2018

Вы можете использовать оператор AND && в ваших условиях:

awk -F, '$44>=0 && $44<=4 {sum += $45 } END { print sum}' Consolidated.csv

Если вы хотите обе суммы (где столбец 44 равен 0, а сумма - от 0 до 4), вы можетепросто добавьте еще один тест {блок} туда:

awk -F, '$44>=0 && $44<=4 {sum2 += $45 } $44==0 {sum += $45 } END { print sum, sum2}' Consolidated.csv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...