Grep mit Zeilenumbrüchen organisieren

646
Benny

Wie kann ich zwischen meinem egrep Zeilenumbrüche einfügen?

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

Ich möchte nach jeder der beiden Zeilen einen Zeilenumbruch hinzufügen. Was ist die effizienteste Abkürzung?

Im Wesentlichen möchte ich, dass das Ergebnis so ausgegeben wird:

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 Antworten auf die Frage

2
Kamil Maciorowski

Ich möchte nach jeder der beiden Zeilen einen Zeilenumbruch hinzufügen.

Die Lösung für dieses Problem ist hier . In Ihrem Fall:

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

Ich habe jedoch nmapAusgaben gesehen, bei denen einige Berichte ihre MACZeile nicht erreichen. Daher möchten Sie (anstatt blind Zeilen zu zählen) vor allen Zeilen eine neue Zeile haben Nmap, es sei denn, sie steht in der ersten Zeile:

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

Ich hatte die Idee dass

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

Dieser sucht nach der zusätzlichen Zeichenfolge "Host ist aktiv" und ersetzt sie durch einen Wagenrücklauf.

Daraus ergibt sich folgende Ausgabe:

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 
Dadurch wird der Raum innerhalb jedes Eintrags der beiden Zeilen, wo er verbunden werden soll, anstelle von Abständen platziert Benny vor 7 Jahren 0
Ich verstehe nicht, was du sagst. Ich habe mein Answe mit der Ausgabe aktualisiert, die ich bekomme. Können Sie Ihre mit der gewünschten Ausgabe aktualisieren? davidgo vor 7 Jahren 0
Ich frage mich, ob Sie ein anderes Betriebssystem verwenden und auf einen CR / LF-Unterschied stoßen. Wenn dies das Problem ist, können Sie Ihre Ausgabe an "todos" oder gleichwertig weiterleiten. davidgo vor 7 Jahren 0
Entschuldigung für die Verwirrung. Ich meine einfach, der Zeilenumbruch sollte der Zeile 'MAC-Adresse' statt der Zeile 'Nmap-Scanbericht' folgen Benny vor 7 Jahren 0