Intereting Posts
Перенаправить вывод запроса в файл Как настроить непривилегированный контейнер LXC без перезагрузки? Как измерить, сколько времени требуется, чтобы мой скрипт запускался и включал это в созданное им письмо? Отображать символы замены для свободного места в Vim разница между «ip link set» и «отключить / снова подключиться» в графическом интерфейсе? Как я могу (и должен ли я) использовать мой файловый сервер Linux в качестве сервера резервного копирования Time Machine для своих компьютеров Mac? Отключение X-сервера на Fedora 17 Успешность / неудачные тесты для cURL (не выполняйте вторую строку, если первая строка не работает) Найти всех пользователей, которые имеют более N процессов и эхо их в оболочке Почему «.» Требуется скопировать файл из одного каталога в другой каталог? Как разрешить ошибку таймаута url при запуске команды yum? Почему в Fedora 24 есть два графических виртуальных терминала? Какую файловую систему следует использовать при передаче файлов между системами Linux? Как отправить stderr в stdout с помощью трубы в другую команду? linux + grub.conf не существует

Как настроить ширину столбца в выводе команды Linux

Когда я использовал эту команду в Red Hat Linux

/usr/sbin/ss -i 

Я получаю следующий результат ниже:

 State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 0 <IP_ADD:PORT> <IP_ADD:PORT> ts sack wscale:2,2 rto:204 rtt:4.5/6.5 ato:40 cwnd:3 ESTAB 0 0 <IP_ADD:PORT> <IP_ADD:PORT> ts sack wscale:2,2 rto:213 rtt:13.875/18.5 ato:40 ESTAB 0 0 <IP_ADD:PORT> <IP_ADD:PORT> ts sack wscale:2,2 rto:201 rtt:1.875/0.75 ato:40 ESTAB 0 0 <IP_ADD:PORT> <IP_ADD:PORT> ts sack wscale:9,2 rto:201 rtt:1.875/0.75 ato:40 

Всякий раз, когда я пытаюсь подключить grep к этой команде ex :

 /usr/sbin/ss -i | grep <SOME_IP_ADD> 

У меня этот вывод

 ESTAB 0 0 <IP_ADD:PORT> <IP_ADD:PORT> ESTAB 0 0 <IP_ADD:PORT> <IP_ADD:PORT> ESTAB 0 0 <IP_ADD:PORT> <IP_ADD:PORT> 

Обратите внимание, что grep не включил это:

 ts sack wscale:2,2 rto:204 rtt:4.5/6.5 ato:40 cwnd:3 

потому что это на другой линии. Итак, как мне настроить ширину столбца всякий раз, когда я использую эту команду или другие команды Linux, если на то пошло. Так что вывод не будет переносом слов или перейти к следующей строке? Их лучшие способы сделать это?

Если ваш grep имеет его, попробуйте параметр -A1 .

Похоже, что это не случай обертывания, но запись находится в отдельной строке.

 /usr/sbin/ss -i | grep -A1 <SOME_IP_ADD> 

Посмотрите на Context Line Control в man grep .

Альтернативой будет использование

 -P Perl-regex -z suppress-newline -o print only matching 

как в:

 ss -i | grep -Pzo '.*IPADDRESS.*\n.*' 

Тогда вы не получите окружающие штрихи, которые дает контекст.


Альтернативой может быть sed:

 sed -n '/IPADDRESS/{N;p}' # Or joining the two lines by: ss -i | sed -n '/IPADDRESS/N;s/\n/ /p' 

AWK:

 awk '/IPADDRESS/{print; getline; print}' # Or as joined lines: awk '/IPADDRESS/{printf "%s ", $0; getline; print}' 

Линия ts sack ... ESTAB ... находится ниже ESTAB ... потому что именно так ss всегда форматирует этот тип информации. Это не обводка. Вы можете включить обе строки в grep , используя флаг -A1 :

 ss -i | grep <IP ADDRESS> -A1 

Вы можете комбинировать каждое соответствие с одной строкой, передавая его через команду sed :

 ss -i | grep <IP ADDRESS> -A1 | sed '/^--$/d;N;s/\n/ /g'