Я пытаюсь получить подстроки, используя sed с регулярным выражением.Я хочу получить первое и второе «поля», разделенные символом «:».
Чтобы получить первое поле, я использовал следующую команду, но не знаю, как получить второе поле.
Команда, используемая для получения первого поля:
sed -r -n '1,2 s/([^:]+).*/\1/p' /etc/passwd
Входной файл (пример):
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
Результат команды:
root
daemon
Но я попытался сделатьполучить первое ("root") и второе ("x") поля (примеры, основанные только на первой строке файла), но я не преуспел.
Я пытался:
sed -r -n '1,2 s/([^:]+).*([^:]+).*/\1 \2/p' /etc/passwd
Результат команды:
root h
daemon n
Желаемый результат:
root x
daemon x