awk -F: 'BEGIN{a[NULL]=0;dupli[NULL]=0;}{if($3 in a){print a[$3];print ;}else a[$3]=$0;} ' /etc/passwd | sort -t: -k3 -n | sed -e 's/^/'$(hostname)':/g'


Команда awk разбивает каждую строку в файле /etc/passwd, используя разделитель «:», и сохраняет ее в массив с ключом в виде третьего поля (UID). Если в массиве уже есть запись с таким ключом, то эта запись выводится в консоль, а затем текущая строка. Если в массиве нет записи с таким ключом, текущая строка сохраняется в массиве и переход к следующей строке.

Далее, результат передается на вход команды sort, которая сортирует результат по третьему полю числовым образом, используя разделитель «:».

Напоследок, результат передается на вход команды sed, которая добавляет имя хоста к началу каждой строки.

Альтернатива может быть использование команды uniq -d для поиска дублированных строк.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *