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

grep -vE '^[[:alpha:]][[:digit:]]{6}:' /etc/passwd

выводит все строки / etc / passwd , кроме тех, которые начинаются с алфавитного символа, за которым следуют 6 цифр (за которыми следует : ).

Ключ находится в параметре -v , который указывает grep печатать строки, которые не соответствуют шаблону.

Если вам нужны только имена пользователей:

cut -d : -f 1 < /etc/passwd | grep -vEx '[[:alpha:]][[:digit:]]{6}'

Или с sed :

sed -n '/^[[:alpha:]][[:digit:]]\{6\}:/!s/:.*//p' /etc/passwd

Обратите внимание на ! , что снова означает , а не .

1
16.07.2015, 17:49
0 ответов

Теги

Похожие вопросы