Я включил виртуализацию ПК в BIOS, отключил Hyper-V в Windows и установил пакет расширения VirtualBox.
Использование awk и сортировка, чтобы сначала указать наиболее распространенное имя:
awk -F: '{sub(/[.].*/, "", $5); a[$5]++} END{for (n in a)print a[n],n}' /etc/passwd | sort -nr
Для версии без учета регистра:
awk -F: '{sub(/[. ,].*/, "", $5); a[tolower($5)]++} END{for (n in a)print a[n],n}' /etc/passwd | sort -nr
Для тех, кто предпочитает свои команды, распространять на нескольких строках:
awk -F: '
{
sub(/[.].*/, "", $5)
a[$5]++
}
END{
for (n in a)
print a[n],n
}
' /etc/passwd | sort -nr
-F:
Это делает :
разделителем полей.
подпункт (/ [.].* /, "", $ 5)
Удаляет все, что находится после первого периода из поля 5.
a [$ 5] ++
Подсчет количества появлений этого имени сохраняется в ассоциативном массиве a
. Это увеличивает счетчик. Для версии без учета регистра это заменяется на a [tolower ($ 5)] ++
.
END {for (n in a) print a [n], n}
Это печатает счетчик и имя для всех результатов, которые мы имеем в массиве a
.
sort -nr
Сортировка вывода по убыванию.
Один из способов сделать это:
cut -d: -f5 /etc/passwd | \
sed 's/\..*//' | \
sort -i | \
uniq -ci | \
sort -rn