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

Можно записать tcpdump вывод к каналу и затем сохраняет его в другом месте. Я обновил Ваш фильтр BPF также.

tcpdump -w - host 10.10.10.10  | ssh host2 'cat - > `date +%F-%Hh-%Mm-%Ss-%N`.pcap'

Это запишет пакеты в stdout, затем перепишите его ssh соединение с другим хостом. Можно также изменить к лучшему его и выполнить его от другого хоста.

ssh router tcpdump -w - host 10.10.10.10 > `date +%F-%Hh-%Mm-%Ss-%N`.pcap
4
11.06.2013, 15:50
2 ответа

Если Ваш 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}'
5
27.01.2020, 20:50
  • 1
    Эй благодарит sukminder, Ваши предложения работали!!! Но я не знаю, где дать точки хотя, так как вы оба ответили одновременно на :s –  dimas 24.04.2013, 04:15
  • 2
    Да, – который может быть дилеммой, но спасибо. Я-проголосую за @drs ;) –  Runium 24.04.2013, 04:19

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

ss -i | grep <IP ADDRESS> -A1

Можно объединить каждое соответствие к одной строке путем передачи его через a sed команда:

ss -i | grep <IP ADDRESS> -A1 | sed '/^--$/d;N;s/\n/ /g'
3
27.01.2020, 20:50
  • 1
    Эй спасибо,-A1 работает отлично. Я не знаю, где дать точки, хотя, так как вы оба ответили одновременно, :s –  dimas 24.04.2013, 04:14
  • 2
    Ps. Это команда sed не делает работ, как предназначено (я верю) из-за тире, добавленных grep в режиме контекста. Попробовать sed '/--/d;N;s/\n/ /' вместо этого. –  Runium 24.04.2013, 04:31
  • 3
    @Sukminder, я скучал по ним. Хорошая выгода. А-ч –  drs 24.04.2013, 04:48
  • 4
    . или sed -e '/^--$/d;N;s/\n/ /' вероятно, была бы хорошая идея. –  Runium 24.04.2013, 04:49
  • 5
    я буду просто upvote drs, потому что sukminder уже имеют много точек lol. еще раз спасибо –  dimas 24.04.2013, 06:35

Теги

Похожие вопросы