Как убедиться, что файл выполняется под учетной записью root?

Вопрос в теле

Выберите строки, начинающиеся с 1и заканчивающиеся пробелом

grep -c '^1\s'          file
grep -c '^1[[:space:]]' file

Это также даст количество строк (без необходимости вызова wc)

Вопрос в заголовке

1не , за которым следует другое число (или ничего):

grep -cE '^1([^0-9]|$)' file 

Но у обоих вышеприведенных решений есть некоторые интересные проблемы, продолжайте читать.


В теле вопроса пользователь утверждает, что файл "разделен табуляцией".

Разделитель

вкладка

Строка, начинающаяся с 1, за которой следует табуляция (фактическая табуляция в команде ). Это не удается, если разделителем является пробел (или любой другой, или нет):

grep '^1    ' file

пробел

Строка, начинающаяся с 1, за которой следует пробел (фактический пробел в команде ). Это не удается, если разделитель является любым другим или никаким.:

grep '^1 ' file

табуляция или пробел

grep '^1(   | )' file
grep '^1[[:blank:]]' file

пробел

Более гибкий вариант — включить несколько пробелов (по горизонтали и по вертикали ). Набор символов [:space:]состоит из(пробела ),\t(горизонтальной табуляции ),\r(возврата каретки ),\n(новой строки ),\v(вертикальной табуляции )и\f(подача формы ). Но grep не может соответствовать новой строке (, это внутреннее ограничение, которого можно избежать только с помощью опции -z). Можно использовать как описание на разделителе. Можно и короче,использовать доступное сокращение GNU\s:

grep -c '^1[[:space:]]` file
grep -c '^1\s'          file

Но эта опция не работает, если разделителем является что-то вроде двоеточия :или любого другого знака препинания (или любой буквы ).

Граница

Или, можно использовать переход от цифры к границе "не цифра", ну собственно "символ не в [_[:alnum:]](_a-zA-Z0-9)":

grep -c  '^1\b' file       # portable but not POSIX.
grep -c  '^1\>' file       # portable but not POSIX.
grep -wc '^1'   file       # portable but not POSIX.
grep -c  '^1\W' file       # portable but not POSIX (not match only a `1`) (not underscore in BSD).

При этом допустимы строки, начинающиеся с 1 и за которыми следует какой-либо знак препинания.

0
04.09.2020, 18:27
1 ответ

Как насчет того, чтобы попробовать что-то вроде:

if [ $(whoami) = "root" ]
0
28.04.2021, 23:07

Теги

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