LINUX.ORG.RU

Странное поведение grep

 ,


0

1

На работе менеджеры сидят на толстых клиентах. ОС Kubuntu 14.04. Заметил такую странность : Захожу из под одного пользователя, ввожу команду cat /etc/passwd | grep operat* а в ответ тишина. Ввожу то же самое без астериска cat /etc/passwd | grep operat и grep отдает мне требуемую строчку с именем пользователя operator_41. Так же команда cat /etc/passwd | grep ssh* выдает строки с паттерном ss(sshd и messagebus), а команда cat /etc/passwd | grep ssh выдает только sshd. (тут возможно я не до конца разобрался с тем как grep работает с *) При логине через другого пользователя команды cat /etc/passwd | grep operat* cat /etc/passwd | grep operat отрабатывает как надо, возвращая строку с пользователем. Шелл в обох случаях bash. Куда смотреть? Чем эти пользователи могут отличаться?


И вам выдача «messagebus» на запрос «ssh*» ни о чём не говорит? grep работает с regex, там запрос «ssh*» означает в любой позиции должны быть две подряд ss и может быть, а может не быть следующая «h» в любом количестве. Вам, наверное, хотелось получить ssh_что-нибудь, тогда звездочка — лишняя. И ещё. Неэкранированная звездочка подхватывается shell-ом и если у вас в текущем каталоге будет файл, скажем, operatic, то оно и будет такой искать в passwd. Для предотвращение этого надо пользоваться кавычками.

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 1)
Ответ на: комментарий от vodz

Ну с ssh* я понял. Но operat* вообще ничего не выдает, хотя если убрать *, тогда есть вывод operator_41. Я хочу понять, почему под одним пользователем operat* находит строку, а под другим - нет.

denrur
() автор топика
Ответ на: комментарий от anonymous

Да, действительно в домашнем каталоге пользователя лежала папку operator_42. Видимо ее grep и подставлял вместо operat*. А поскольку логин был через operator_41, то grep не находил в списке пользователей operator_42.

Спасибо за помощь. Век живи - век учись))

denrur
() автор топика
Ответ на: комментарий от denrur

Видимо ее grep и подставлял вместо operat*

Ну офигеть. Почему видимо? И, как обычно тут принято, дальше первого предложения тут не осиливают? А это ничего, что я в последних двух предложениях тоже самое сказал?

vodz ★★★★★
()
Ответ на: комментарий от vodz

не надо так переживать. Я осилил комментарий полностью, поэтому и полез смотреть. А насчет «видимо» - ну стиль письма у меня такой. И ответил я на последнее сообщение на автомате, надо было конечно на ваше отвечать, потому как именно оно мне и помогло разобраться))

denrur
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.