2013-11-28 3 views

ответ

29
awk -F: '$0=$1 " uid="$3' /etc/passwd 

В этом случае awk проще.

-F определяет разделитель полей в :

так что вы хотите это первый и 3 colums. поэтому создайте $0, чтобы обеспечить формат вывода.

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

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

+3

+1 за предложение научиться рыбачить – Will

8

cut хороша для этого:

cut -d: -f1 /etc/passwd 

Это означает «вырезать, используя : как разделители, все, за исключением первого поля из каждой строки файла /etc/passwd».

2

Я думаю, лучший вариант заключается в том, что:
grep "/bin/bash" /etc/passwd | cut -d':' -f1

+1

этот ответ - это то, что я ищу. Это дает пользователям возможность входа в систему с помощью GUI :) –

0
awk -F':' '$3>999 {print $1 " uid: " $3}' /etc/passwd | column -t | grep -v nobody 

дает вам все обычные пользователи (UID> = 1000) аккуратно упорядоченный включая идентификатор пользователя.