grep вывод названий столбцов

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

safronowmax
Сообщения: 87

grep вывод названий столбцов

Сообщение safronowmax »

Здравствуйте, подскажите пожалуйста, как при фильтрации вывода с помощью grep можно выводить также и названия столбцов? Например, команда lsof |more выводит название столбцов

Код: Выделить всё

[root@test ~]# lsof |more
COMMAND     PID  TID         USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd       1              root  cwd       DIR              253,0      4096        128 /
systemd       1              root  rtd       DIR              253,0      4096        128 /
А вот уже lsof |grep nginx не выводит название столбцов

Код: Выделить всё

[root@test ~]# lsof |grep nginx
runsv       670              root  cwd       DIR              253,0        42  138753099 /opt/gitlab/sv/nginx
runsv       670              root    7wW     REG              253,0         0   68534235 /opt/gitlab/sv/nginx/supervise/lock
[/code]

Как можно вывести?
Спасибо сказали:

Аватара пользователя
Dionysius
Сообщения: 455
ОС: Manjaro

Re: grep вывод названий столбцов

Сообщение Dionysius »

Например, вот так:

Код: Выделить всё

lsof | grep 'COMMAND\|nginx'
Спасибо сказали:

Аватара пользователя
olecya
Сообщения: 494
ОС: debian, fedora (i3-wm)

Re: grep вывод названий столбцов

Сообщение olecya »

Shell

lsof | { head -1; grep nginx; }
Добавлено (11:40):

Shell

lsof > >(head -1; grep nginx)
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18635
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: grep вывод названий столбцов

Сообщение Bizdelnick »

lsof | sed -n '1p;/nginx/p' — это общее решение для замены grep.
lsof -c nginx — это более эффективное частное решение для данного конкретного случая.

P. S. А если "nginx" ищете не в команде, а в имени файла, то вообще не ту команду выбрали. Используйте fuser.

P. P. S. Часто замечаю, что админы любят использовать grep везде, где только можно, даже не задумываясь о том, что задача решается без него намного проще и эффективнее. Советую всегда начинать с чтения мана той команды, вывод которой собрались грепать. Весьма вероятно, что там уже предусмотрена какая-то фильтрация.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
Dionysius
Сообщения: 455
ОС: Manjaro

Re: grep вывод названий столбцов

Сообщение Dionysius »

Bizdelnick писал:
01.12.2020 13:00
lsof | sed -n '1p;/nginx/p' — это общее решение для замены grep.
Интересно, а в чём выгода может быть? По идее, sed тоже ведь будет парсить текст. Могу предположить, что grep будет по умолчанию гонять регулярку, а sed - просто поиск подстроки. В этом смысл?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18635
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: grep вывод названий столбцов

Сообщение Bizdelnick »

Dionysius писал:
01.12.2020 13:19
Интересно, а в чём выгода может быть? По идее, sed тоже ведь будет парсить текст. Могу предположить, что grep будет по умолчанию гонять регулярку, а sed - просто поиск подстроки. В этом смысл?
Нет, в обоих случаях будет регулярка. Но она проще, чем та, что Вы предложили, и дополнительно будет выведена только первая строка, но не какая-то ещё, в которую почему-то затесалось буквосочетание "COMMAND".
А вообще решений можно много придумать, это просто то, что пришло мне в голову в первую очередь. Ну и ещё люблю поломать людям шаблон, показав, что можно жить без grep. ☺
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: