Организация grep с переносами строк

425
Benny

Как я могу добавить разрывы строк между моим egrep?

# nmap -sP 192.168.1.0/24 | egrep 'MAC|report' 

Я хотел бы добавить перенос строки после каждой из двух строк. Какая самая эффективная стенография?

По сути, я бы хотел, чтобы результат выводился так:

Nmap scan report for 192.168.1.7 MAC Address: C4:42:02:xx:xx:xx (Samsung Electronics Co.)  Nmap scan report for 192.168.1.8 MAC Address: 04:F1:3E:xx:xx:xx (Apple)  Nmap scan report for 192.168.1.10 MAC Address: 70:18:8B:xx:xx:xx (Hon Hai Precision Ind. Co.) 
1

2 ответа на вопрос

2
Kamil Maciorowski

Я хотел бы добавить перенос строки после каждой из двух строк.

Решение этой буквальной проблемы здесь . В твоем случае:

nmap -sP 192.168.1.0/24 | egrep 'MAC|report' | sed '0~2 s/$/\n/g' 

Однако я видел nmapвыходные данные, в которых некоторые отчеты пропускают свою MACстроку, поэтому (вместо слепого подсчета строк) вы предпочитаете новую Nmapстроку перед каждым, если только она не находится в самой первой строке:

nmap -sP 192.168.1.0/24 | egrep 'MAC|report' | sed '1! s/^Nmap/\nNmap/' 
0
davidgo

Я придумал

nmap -sP 192.168.10/24 | egrep 'MAC|report|Host is up' | sed '/Host is/c\\r' 

Это ищет дополнительную строку "Host is up" и затем заменяет ее возвратом каретки.

Это приводит к следующему выводу:

Nmap scan report for 192.168.1.1  MAC Address: 00:0E:C6:C7:93:38 (Asix Electronics) Nmap scan report for (192.168.1.254)  MAC Address: 1C:C1:DE:80:53:55 (Hewlett Packard) Nmap scan report for 192.168.1.250 
Это помещает пробел в каждой записи двух строк, где он должен быть подключен, а не через Benny 6 лет назад 0
Я не понимаю, что ты говоришь. Я обновил свой ответ с выводом, который я получаю. Можете ли вы обновить свой с выходом, который вы хотите? davidgo 6 лет назад 0
Интересно, если вы используете другую ОС и сталкиваетесь с разницей в CR / LF - если в этом вся проблема, вы можете направить свой вывод в "todos" или эквивалентный. davidgo 6 лет назад 0
Извините за путаницу. Я просто имею в виду, что разрыв строки должен следовать за строкой «MAC-адрес» вместо строки «Nmap scan report» Benny 6 лет назад 0

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