Как я показываю группу, если содержит по крайней мере пользователь?

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

filtrado-ssh

В этом случае, который "root" не выходил, и только они появлялись "adm", "disk", "dialot" и "факс" тех, которые видятся в изображении.

0
задан 19.03.2019, 17:22
3 ответа

У файла /etc/group есть различные поля, отделенные :. То, что ты хочешь в сущности, состоит в том, чтобы находить те lГ-neas, у которого была стоимость в поле 4, и, в таком случае, показывать поле 1.

, Так как он очень rГЎpido с awk:

awk -F: '$4!="" {print $1}' /etc/group

Этого определяет разделитель как : используя -F и despuГ©s подтверди, что поле четверть не было vacГ - или. Если это случай, напечатай первое поле.

2
ответ дан 02.12.2019, 05:27

Одно из моих предложений та opciГіn с одной expresiГіn регулярно

sed -rn "s/^(.*):(.*:){2}.+/\1/p" /etc/group

А именно, захватывать то, что estГ© перед ":", потом убеждаться в, что переместили себя другие два ":" и despuГ©s, что существовали символы despuГ©s этих Гєltimos ":". Однажды сделанный это, оно является задержанным.

Другое предложение - одно reducciГіn того, что предложило @fedorqui

awk -F: '$4{print $1}' /etc/group

В этой, просто я не поместил $4!="", потому что оно функционирует с Гєnicamente $4, хотя я не знаю ее razГіn документируемая из-за quГ©.

2
ответ дан 02.12.2019, 05:27
  • 1
    та жажды мне кажется убивать мух в cañ onazos:) – fedorqui 19.03.2019, 19:34
  • 2
    та awk функционирует с $4, добро я одеваю. Это así потому что выражения в awk имеют форму condición {acción}. Следовательно, $4 функционирует как condició n прямо и это эквивалент, который нужно говорить " 4$ existe" или " 4$ он не nula" как сказал я, будучи твой opció n má s idiomá костариканская. – fedorqui 19.03.2019, 19:35
  • 3
    В самом деле я сделал одну ты пытаешься и покажись, что versió n awk это 3 раза má s rá попросите, чем с той sed. – Cuauhtli 19.03.2019, 20:05
  • 4
    я предполагаю, что в versió n жажды взвешивает достаточно, что ты использовал regex жаждущие (greedy). – fedorqui 19.03.2019, 20:10

Как пользователи - последняя колонна, ты можешь искать просто один :, после которого есть символы, которых нет :, и единственно символы, которых нет : до конца линии ($):

grep -E ':[^:]+ /etc/group
1
ответ дан 02.12.2019, 05:27
  • 1
    У меня есть проблема, с которым я понимаю, из-за которого solicitó который preguntó. dijo " ¿ Có mo я показываю группу? " но потом он сказал " я хочу, что só это выйдите у меня они grupos". В первом случае, всех ответах они мне кажутся справедливыми, но во втором, só они это применяют для той @fedorqui и моя. Но неясная тема. Но я gustó много твой aproximació n así который я играл немного с regex и это получал grep -Po '^\w*(?=.*:[^:]{1,}$)' /etc/group – Cuauhtli 30.03.2019, 17:03