найти количество команд из файла [закрыт]

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

пример

enter image description here

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

5
задан C0deDaedalus
источник

2 ответов

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

1. использование cut и uniq

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

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

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

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

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

2. Использование grep избежать напечатать линию Ist.

cat teamsfile | grep -v "Team" | cut -d "," -f2 | sort -u | wc -l
  • grep-v - отменяет поиск для строки "Team"
3
отвечен C0deDaedalus 2018-03-12 12:16:23
источник

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

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

этот один вкладыш передаст вам число команд.

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

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

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

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

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

0
отвечен Vipul 2018-03-19 06:15:59
источник

Другие вопросы bash cut uniq