Найти количество команд из файла

Я начал изучать bash совсем недавно, и мне нужно найти количество команд из файла, файл можно скачать по этой ссылке.

Ниже образец

Я понимаю, что я должен использовать cut и uniq, но я не могу понять, как. Любая помощь приветствуется.

2 ответа

Сказать teamsfile это файл, содержащий данные, из которых вы хотите общее количество команд, то

1. используя cut а также uniq

tail -n +2 teamsfile | cut -d "," -f2 | uniq | wc -l
  • tail -n +2 teamfile - печатает файл, но не печатает первую строку (которые в вашем случае являются метками значений)

  • cut -d "," -f2 - вырезать 2-е поле, разделенное запятой (действует как разделитель)

  • uniq - показывать только уникальные значения (Можно также использовать sort -u)

  • wc -l - вывести количество строк в выводе

В качестве альтернативы вы можете использовать sed а также awk, они очень полезны в таких задачах.

2. Использование grep чтобы избежать печати первой строки.

cat teamsfile | grep -v "Team" | cut -d "," -f2 | sort -u | wc -l
  • grep -v - отменяет поиск строки " Team"

Вы можете просто использовать awk, чтобы напечатать всю команду, а затем найти количество.

grep -v "Team" teamsfile | awk -F',' '{print $2}' | sort -u | wc -l

Этот лайнер даст вам количество команд.

Объяснение::

grep: выберет все строки, содержащие ключевое слово "Team".

awk: он разбивает строки на основе запятой и печатает второй столбец, который содержит названия команд.

sort -u: сначала сортирует все названия команд по алфавиту, а затем сохраняет только уникальные записи.

wc -l: он предоставит количество строк, в которых присутствуют данные, в приведенном выше случае количество уникальных имен команд.

Другие вопросы по тегам