Вот мое меню 1st
default 1
timeout 8
gfxmenu (hd1,4)/message
###Don't change this comment - YaST2 identifier: Original name: linux###
title Zen-Kernel - 3.0.3-zen
root (hd1,4)
kernel /boot/vmlinuz-3.0.3-zen rw root=/dev/sda7 rw resume=/dev/sda6
showopts quiet fastboot raid=noautodetect radeon.modeset=1
radeon.lowpower=1 radeon.dynpm=1 video=1440x900 acpi_osi="Linux"
pcie_aspm=force thermal.act=90 acpi.power_nocheck=1 init=/sbin/sysvinit
nohz=off
Каждое поле в a /etc/passwd
строка разделяется двоеточием, и имя пользователя является первым полем, таким образом, необходимо отфильтровать каждую строку, чтобы только показать символам до первого двоеточия
grep
даже не близко к лучшему инструменту для того, чтобы сделать это, но если Вы будете обязаны использовать его, то это будет работать:
grep -oE '^[^:]+' /etc/passwd
-o
говорит этому только возвращать часть строки, которая соответствует. -E
включает расширенные регулярные выражения так +
будет работать позже. ^
соответствует началу строки, [^:]
соответствия что-либо кроме двоеточия, и +
средства как можно больше символов. Таким образом, это будет соответствовать началу каждой строки вплоть до первого двоеточия
Если Вы можете использовать другие инструменты, кроме того, grep
, вот другие обычно лучшие способы сделать его:
cut -d: -f1 /etc/passwd
sed 's/:.*//' /etc/passwd
awk -F: '{print $1}' /etc/passwd
Можно перенаправить результаты любого из тех, которые в allusers
использование > allusers
как Вы имеют в Вашем примере
Grep не подходит для этой ситуации, попытайтесь получить файл паролей с getent
и проанализируйте его с awk (двоеточие разделенное содержание),
getent passwd | awk -F ':' '{print $1}' > allusers
grep -o '^[a-zA-Z]*:' /etc/passwd
работы для меня.. это только печатает имена пользователей, с имен которых начинается a-zA-Z
...
Я использую:
grep -E 1[0-9]{3} /etc/passwd | sed s/:/\ / | awk '{print $1}'
Только для получения не -системных или встроенных пользователей.
grep
может считать stdin вместо файла, таким образом, Вы могли сделатьcat /etc/passwd | grep -oE '^[^:]+'
вместо этого я предполагаю комментарий @MichaelMrozek – Michael Mrozek♦ 19.02.2013, 05:53sort(1)
получить их в алфавитном порядке. Бесполезное Использование CAT или UUC считают дурным тоном в Unixland. – vonbrand 19.02.2013, 06:00