Количество столбцов ненулевых строк в текстовом файле в UNIX - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь подсчитать количество ненулевых строк всех столбцов в текстовом файле. Я могу читать не пустые строки в каждом столбце по отдельности, но я пытаюсь собрать их все вместе. awk - F "|" '$1!=""{N++} print N'

Вот посмотрите на мои данные

A | Б | C | D | E

1 | 2 | 0 | 8 |

5 | 3 | 6 | | 4

| | 8 | |

| 7 | 8 | |

8 | 9 | 2 | | 4

Я хочу, чтобы результат был таким: Столбец A: 3 Столбец B: 4 Столбец C: 5 Столбец D: 1 Столбец E: 2

Ответы [ 2 ]

1 голос
/ 12 марта 2020

Ваша попытка не работает. Удалите пробел между - F и в конце наберите print N, используя END:

awk -F "|" '$1!=""{N++} END {print N}' input.txt

Эта команда также будет считать строки с некоторым текстом, пропущенным |.
Альтернатива будет

grep -cE "[^|]+\|" input.txt
0 голосов
/ 12 марта 2020

Если вы хотите проверить все столбцы всех строк, а не определенный столбец:

awk -F'|' '{ for (i = 1; i <= NF; i++) if ($i != "") n++ } END { print n }' input.txt

Для каждой строки l oop над каждым | -ограниченным полем в этой строке, увеличивая счетчик, если он не пустой. Наконец напечатайте счет в конце.

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