Ich versuche einen awk -Befehl/Skript herauszufinden, um einen Textblock aus einer großen Datei zu extrahieren. Der von mir interessierte Dateiuntersuchung ist: < /p>
Board Info: #512
Manufacturer: "Dell Inc."
Product: "0X3D66"
Version: "A02"
Serial: "..CN7016343F00IE."
Chassis Info: #768
< /code>
Die Board -Info und Chassis -Info -Linien haben 2 führende Räume, während der eingebaute Block 4 hat. Ich möchte nicht davon ausgehen, dass die Endlinie mit Chassis -Informationen beginnt (könnte etwas anderes sein) und nur auf die Ankunft der "nächsten" Zeile mit 2 Spaces.awk '/^\s{2}Board Info/,/^\s{2}[^B ]/' dump.txt
< /code>
Löst diese bestimmte Instanz, funktioniert jedoch nicht, wenn anstelle von 'Chassis Info' die endlingsblockische Zeile mit dem Buchstaben B beginnt (z. B. BOM).awk '/^\s{2}Board Info/,/^\s{2}\S*/' dump.txt
< /code>
Das Endmuster wird auch mit der Zeile 'Board Info' übereinstimmt, sodass ich nur diese Zeile erhalte. Wie bekomme ich diesen eingebauten Block (4 führende Räume), ohne den Endblock (wie oben) fest zu kodieren und sich darauf zu verlassen, dass das Endmuster „die nächste Zeile mit genau 2 führenden Räumen beginnt“?
Awk, um einen Textblock zu extrahieren ⇐ Linux
-
- Similar Topics
- Replies
- Views
- Last post