grep дает результаты, которые не отображаются в исходном контексте

Я новичок в Unix, и я уже сталкивался с чем-то, что случается очень часто.

Я ps -eo 'tty,pid,comm' команду (например, ps -eo 'tty,pid,comm' ) и возвращает текст. Насколько я понимаю, когда я передаю результат в grep он должен искать результат и возвращать результаты этого вывода.

Итак, почему же я возвращаю результат, который не похож на команду ps ? Я возвращаю длинный текст, который даже не в форме исходной команды ps и состоит из неясной информации и выглядит как файл настроек.

One Solution collect form web for “grep дает результаты, которые не отображаются в исходном контексте”

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

Таким образом, ваша команда ps делает то, что должна, но grep полностью игнорирует этот вход, предпочитая grepping файлы в командной строке.

Продемонстрируйте это для себя, сделав что-то вроде:

 mkdir ~/tempdir cd ~/tempdir ps -eo 'tty,pid,comm' | grep ? 

который создаст пустой каталог (в нем нет файлов), который затем позволит ? чтобы не расшириться и перейти непосредственно к grep. Затем создайте два файла:

 touch a echo thisisfilebwithana > b 

а затем повторно запустить только grep, вот так:

 grep ? 

и вы увидите

 thisisfilebwithana 

потому что grep увидел это:

 grep ab 

который он интерпретирует как «показать мне все строки из файла b, содержащие« a ».

Вместо этого вы, скорее всего, захотите сделать это, чтобы избежать вопросительного знака:

 ps -eo 'tty,pid,comm' | grep \? 

или

 ps -eo 'tty,pid,comm' | grep '?' 
  • ps aux: zero VSZ
  • идентификатор / идентификатор процесса анализа из / proc, идентификаторы потоков
  • Как получить название медиа, воспроизводимого в VLC или других медиаплеерах с использованием CLI?
  • Linux + Solaris, как проверить последний процесс выполнения из списка процессов
  • ps | grep показывает плохой результат в подоболочке с заданиями, работающими в фоновом режиме
  • Как получить начальное время для несуществующего процесса в AIX?
  • Убивание процесса cron и предотвращение его перезапуска
  • Разница между free -m и ps -euf
  • Как просмотреть процесс, созданный конкретным пользователем в Unix / linux
  • Получить время начала процесса независимо от обновлений NTP
  • AIX, почему ps показывает имя процесса между квадратными скобками?
  • Interesting Posts

    Как разрешить папку для конкретного пользователя в LINUX / UNIX?

    Что нужно учитывать при покупке рабочего стола для использования двух экранов в Linux

    сомнения относительно использования split в awk

    извлекать строки из большого файла с разделителями табуляции, используя список

    Журнал Squid залит сообщением 404

    Неблокирующий буферный именованный канал?

    Debian сжимают (стабильные) сломанные пакеты после установки чего-то из хриплого (тестирования)

    Как скопировать файл и переместить его в местоположение с помощью unix

    Как открыть неизвестный тип файловой системы с диска

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

    Flash-плеер на Scientific Linux 6.5

    Есть ли способ окончательно исключить ядро ​​из обновлений?

    Передача `scp` закрывается, когда я закрываю оболочку?

    Как я могу использовать ACL в BIND для пересылки запросов на зону выборочно?

    Как установить / установить mutt с Gmail на CentOS и Ubuntu?

    Linux и Unix - лучшая ОС в мире.