Как настроить ширину столбца в выводе команды 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, если на то пошло. Так что вывод не будет переносом слов или перейти к следующей строке? Их лучшие способы сделать это?

2 Solutions collect form web for “Как настроить ширину столбца в выводе команды 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' 
  • Почему здесь не работает grep с использованием трубы?
  • Команда Grep для поиска файлов, содержащих текстовую строку, и перемещения их
  • Ссылочный псевдоним Grep на nano. Ничего не происходит, когда команда выдается
  • Ошибочно превратил файл в двоичный
  • поиск и имена эхо-файлов только с найденным шаблоном
  • Как извлечь IP и URL из файла журнала
  • Регулярное выражение ^ $ не работает в UNIX, используя команду grep
  • Как я могу скопировать n строк после последних двух вхождений строки в файл?
  • BASH: как Grep и отображает набор значений
  • grep внутри меньше?
  • Объедините две строки файла и добавьте число в конце строк
  • Interesting Posts

    Установка псевдонима, когда двойные кавычки и одинарные кавычки оба терпят неудачу

    запуск команды до того, как shtudown, похоже, не работает

    Как удалить несколько строк в каждом вхождении в файл?

    Каков механизм моего скрипта, который потерял исполняемый бит после добавления к нему скрипта?

    Почему tar не требует перезаписи существующих файлов?

    Как я могу увидеть пароль другого пользователя в Linux?

    Wifite Issue, «включение режима мониторинга на phy3».

    Подключить VPN через privoxy

    Выполнение nmap в сети

    Что такое файлы centos /root/core.*? они едят мой жесткий диск, пока он не будет полным

    Почему разветвленные процессы иногда появляются с помощью скобок вокруг их имени в ps?

    Как изменить среду оболочки, замеченную приложениями, запущенными на рабочем столе?

    Сравните два файла .csv

    Значение определенных папок в дереве ядра linux

    Какая самая «правильная» точка монтирования для постоянного раздела NTFS?

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