Подсчитайте количество строк, содержащих более N слов, используя AWK - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть пример файла sample.txt, содержимое которого указано ниже:

this is me
hello
my name is x
awk tutorials
unable to get this right

Я хочу посчитать количество строк, содержащих более N слов. Давайте рассмотрим N=3

Следовательно, желаемый результат равен 2 (3-я строка и 5-я строка).

Я пробовал следующий код:

cat sample.txt | awk 'BEGIN{count=0}{"NF>3" then count++} END{print count}'

Мой вывод всегда 5 (это число строк в файле; выход остается неизменным даже при изменении N с 3 на 8, что указывает на то, что условие всегда истинно).

1 Ответ

2 голосов
/ 19 февраля 2020

Не могли бы вы попробовать следующее.

 awk -v num="3" 'NF>num{count++} END{print count}'  Input_file

ИЛИ

awk 'NF>3{count++} END{print count}'  Input_file

Проблема с кодом OP попытка:

  • Метод условия OP "NF>3" then count++ неверен.
  • Несмотря на поиск строк, где NF> 3, его возрастающее значение считается каждый время и, следовательно, каждый раз выводится 5.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...