PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bash script


piepre
2007-05-25, 13:08:16
Moin, ich stehe gerade etwas auffem Schlauch.
Wie kann ich in einer Datei nach ein Wort suchen und dann ab dieser Zeile (bis 3 Zeilen vor Dateiende) alles ausgeben?

piepre
2007-05-25, 13:57:51
da ich es nicht hinbekommen habe, hab ich es nun mit einem perlscript gemacht, falls jemand eine Lösung für die Bash hat, würde ich sie dennoch gerne haben :)

The_Invisible
2007-05-25, 15:15:21
das sollte eigentlich funzen


#!/bin/bash

SEARCH="VALID"
FILE="pyxm.py"

LINES=`expr $(wc -l $FILE | cut -d " " -f 1) - 3`

grep -m 1 -A $LINES $SEARCH $FILE


mfg

piepre
2007-05-25, 16:27:20
die Berechnung von LINES ist nicht ganz korrekt, da bei dem grep die Zeilen ab der Position angegeben werden müssen an der das Suchkriterium zutrifft. Die Anzahl der Zeilen vor dem Suchtreffer müssen daher von der Gesamzahl der Zeilen auch abgezogen werden.

so geht es glaube ich:
LINES=`expr $(wc -l $FILE | cut -d " " -f 1) - $(grep -m 1 -n $SEARCH $FILE | cut -d ':' -f 1) - 3`

Danke :)