Хорошо, немного поздно добавляю свой вклад, но я думаю, что оно того стоит.
Требование, которое необходимо выполнить согласно ОП, — это первый столбец, имеющий только десятичное значение .000
или .500
. Нет никаких условий относительно начального значения ни по диапазону, ни по длине. Для надежности не следует предполагать, что он ограничен чем-либо, кроме того, что перед первым столбцом нет непустых символов (или это уже не первый столбец) и что содержимое первого столбца будет иметь десятичную точку .
, где-то в нем.
ОП хочет использовать grep
, который будет печатать всю строку при обнаружении совпадения, поэтому единственное, что нужно сделать, это создать шаблон, который соответствует всем и только то, что требуется.
Сама простота и отсутствие причин использовать sed
или awk
, поскольку `grep может обрабатывать источник как файл или канал.
Для grep
файла используйте grep '^[^.]*\.[05]0\{2\}\s' the_file.txt
Для grep
из канала, используйте my_command | grep '^[^.]*\.[05]0\{2\}\s'
Шаблон: ^
, start in the first of the line; [^.]
, соответствует любому недесятичному символу; *
, столько раз, сколько возможно (включая ни одного); \.
, соответствует десятичной точке; [05]
, соответствует пятерке или нулю; 0\{2\}
, сопоставьте еще 2 нуля (обратная косая черта перед открывающей и закрывающей фигурной скобкой не позволяет оболочке выполнить раскрытие скобки); \s
, соответствует символу пробела (означающему конец столбца — для использования в другом варианте использования замените разделителем столбцов, обычно это команда, точка с запятой или табуляция \t
).
Обратите внимание, что это будет соответствовать точно тому, что задал ОП. Он будет не соответствовать .5000
или .0000
, даже если он численно эквивалентен, потому что шаблон ищет пятерку или ноль, за которыми следует ровно 2 больше нулей, за которыми следует пробел.Если это важно, то все остальные ответы до сих пор терпят неудачу, поскольку они будут соответствовать любому количеству нулей, больше 1, после контрольной цифры. И кроме ответа FloHimself, они будут соответствовать всем во втором столбце, который начинается с .000
или .500
, включая . 0003
и .500T
, а значение FloHimself будет соответствовать всему, что математически эквивалентно .0
и .5
, независимо от того, сколько нулей Есть. Последний, хотя и не соответствует заявленному ОП, в любом случае, скорее всего, будет соответствовать тому, что нужно ОП.
Наконец, если желательна мощность и скорость awk
, даже несмотря на то, что OP запросил grep
, тогда команда будет следующей:
С файлом awk '$1 ~ /[^.]\.[05]0{2}$/' the_file.txt
С каналом my_command | awk '$1 ~ /[^.]\.[05]0{2}$/'
Я много над этим работал, И после стольких попыток и поисков у меня все заработало
Введите приведенную ниже команду и нажмите Enter, чтобы безопасно открыть файл /etc/sudoers для редактирования:
$ sudo visudo
На новой строке вставьте текст ниже:
%domain\ admins ALL=(ALL) ALL
Так как у меня было ДОМЕННОЕ имя в виде двух слов, я должен использовать:domain\ admins
domain admins
Это было точное название группы, которое у меня было.
и %
, чтобы указать группу. и без %
я бы подумал, что это имя пользователя.
НЕ НУЖНО УКАЗЫВАТЬ ДОМЕН Это я пробовал раньше. то есть:
%DOM.DOMAINNAME.COM\\domain\ admins ALL=(ALL) ALL