Wie kann ich mit dem Editor 'ed' die ersten 20 übereinstimmenden Zeilen drucken?


1

Bei einer Datei mit einer enormen Größe kann ich sie mit ed bearbeiten und anschließend den folgenden Befehl eingeben.

g/real/p

Damit werden alle Zeilen ausgegeben, die 'real' enthalten.

Ich möchte die ersten 20 drucken.

Ich kenne sed, grep, head, etc. Aber ich möchte meine ed Fähigkeiten verbessern.


Ich weiß es nicht ed, aber | head -n20?
Rob

1
Hallo, versuche nur mit ed eine Lösung zu finden.
Bryan Hunt

Antworten:


0

Sie können Bereiche vor Ihren Befehlen im Formular angeben from,to.

1,4p

würde die Zeilen 1-4 drucken.


0

Hier ist eine Möglichkeit:

ed -s infile <<IN
v/PATTERN/d               # delete all lines NOT matching PATTERN
,w !head -n20             # pass the addressed lines as input to shell command
u                         # undo deletion: not needed if you don't save changes
q                         # quit editor
IN
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.