Bestimmte Folgezeile ausgeben mit grep

Hallo zäme

Ich möchte nach einem Such-String suchen und anschliessend nur eine bestimmte Folgezeile ausgeben. Will heissen ich suche nach dem Wort „Location“ und möchte anschliessend die 5. NACH Location noch ausgeben.

Mit folgendem Command kann ich die nachfolgenden 5 Zeilen ausgeben aber nicht nur die 5. Zeile. Wie geht das?

cat file | grep „Location“ -A5

Guten Tag,

evtl. könnte das csplit-Kommando helfen, wie genau, kann ich aber auch nicht sagen.

Gruß, Lutz

Hiho,

nur so in den Wind geschossen und nicht ausprobiert

cat file | grep "Location" -A5 | tail -n 1

Hi,

kam mir auch in den Sinn, funktioniert aber nur, wenn es genau eine Fundstelle bei grep gibt. Aus der Fragestellung geht m.E. hervor, dass es mehrere bis viele Fundstellen pro Datei gibt.

Gruß, Lutz

Hallo,
mit „grep --help“ findet man die möglichen Commandos unter Linux. Für Dein Problem würde ich ein massgeschneidertes TCL- oder shell-script die Daten filtern lassen. Du kannst es natürlich in jeder beliebigen Programmiersprache machen.
Viele Grüße Volkert

Gut,

für diesen Fall dann ganz anders:

sed -ne "/Location/{n;n;n;n;n;p}" file

gibt 5 Zeilen nach der Fundstelle von Location aus. Egal wie oft Location vorkommt.

Besser ? :smile:

Cat as cat can?

cat file | grep „Location“ -A5 | tail -n 1

Welchen Sinn hat das ‚cat‘? Dient das einfach nur dazu, den Ausdruck ein bisschen komplexer zu machen? Warum dann nicht gleich

more `echo file` | less | cat | grep "Location" -A5 | tail -n 1 

Ich mein, wenn man schon mal anfängt zu verschwurbeln…

Komm, da kannst du doch noch nachbessern. Z. B. das ‚tail‘ in einem Wust überflüssiger Kommandos erdrücken!

SCNR

Hallo,

Welchen Sinn hat das ‚cat‘?

Wie willst Du sonst den UUOC-Award gewinnen?

Sebastian

cat /dev/zero \> /dev/null

Hui!

niehaus@ceramic:~/Pictures/$ ps aux | grep cat
niehaus 17983 98.4 0.0 5612 584 pts/3 R+ 21:33 0:33 cat /dev/zero

Ich brauche einen schelleren Processor. Und mehr Cores. Für mehr Katzencontent.

Nanu,

herablassende Art und keinerlei Beitrag zum Thema. Ist das Heise Forum gschlossen?

So im Nachhinein ist das cat doch sinnlos. Das kommt vom schnellen Copy/Paste.

Deine Reaktion ist aber ein wenig armselig. So rumprotzen ohne besseres Wissen zu zeigen. Das scheint in deiner Welt ein normaler Tonfall zu sein. Mein Beileid an dieser Stelle dazu.

Aber du hast hier und jetzt die Wahl, alles wieder gut zu machen. Ich hab ein wenig weiter unten ein diesem Thread ein sed gepostet, mit dem ich nicht zufrieden bin.
Verbesser das mal ein wenig. Vielleicht bist du danach auch nicht mehr so Agressiv.

PS: Das gilt auch für deinen Unterstützer, der diesen überheblichen Link gepostet hat.

PPS: Ich habe extra ein paar Rechschreibfehler eingebaut. Das ist doch sicher der nächste Schritt in deiner Trollerei oder?

Mein Beileid an dieser Stelle dazu.

Hallo Sheldon,

Sei du meines tiefsten Beileids versichert. Wer offenkundige Ironie mit Agression verwechselt und wegen so einer Kleinigkeit gleich beleidigt in die Luft geht, muss ein schweres Leben haben:'C

Gruß

Hallo
Sorry, war in Urlaub.

Einen „cat“ in die Datei, mittels „grep“ nur auf die Zeilen auf die dein Suchstring passt, und dann mittesl „cut“ von -bis herausschneiden. as geht dann duch alle Zeilen, in denen der Suchstring vorkommt.
Bsp.:

cat /etc/fstab | grep -e „LABEL“ | cut -c 7-10

Gruß
Hermy