Versuchen Sie es mit awk:
awk '/^Start/,/^End/' file
oder wenn Sie lieber sed bevorzugen:
sed -n '/Start/,/End/p' file
Ich muss Protokolldaten aus vielen Terrabytes von Protokolldateien extrahieren. Die Sache ist, die Daten, die ich brauche, beginnen und enden mit Mustern, die ich identifizieren kann, aber der Code zwischen 10 und 100 Zeilen kann beliebig sein.
Beispiel:
Start # lots of lines here End
Derzeit mache ich grep -A 50 "Start"
, was mir den Start und die 50 Zeilen danach gibt. In fast allen Fällen ist das jedoch mehr oder weniger als ich brauche. Das bedeutet, dass die resultierende Berichtsdatei um Gigabytes größer wird, als sie sein muss, und weniger bedeutet, dass ich nicht die Informationen bekomme, die ich brauche.
Gibt es eine Möglichkeit, mit Standard-Unix / Linux-Tools genau das zu extrahieren, was ich brauche?
Versuchen Sie es mit awk:
awk '/^Start/,/^End/' file
oder wenn Sie lieber sed bevorzugen:
sed -n '/Start/,/End/p' file