-1

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

Ниже образец

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

2 ответа2

3

Скажем, 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"
0

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

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

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

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .