Dateimanipulation

Hallo,

hoffe das richtige Brett gefunden zu haben, wenn nicht bitte nicht schlagen. Aber denke es paßt hier rein, weil es eben um Unix geht.

Folgendes Problem
Ich habe eine Textdatei in der muß ich den Text zwischen zwei Suchbegriffen löschen. Der Suchbegriff ist immer viermal (!) vorhanden in einer Datei. Also muß ich das 3. Vorkommen suchen und das vierte und alle Zeilen dazwischen löschen/filtern.

Würde das ganze gerne mit einem Unix-Script machen, ähnlich wie ich das mit Suchen/Ersetzen mit SED mache, aber ganz so einfach ist das wohl nicht. Vielleicht kann mir jemand eine Möglichkeit nennen.

Das ganze muß in der Nacht als Script laufen (über cron). Daher kann ich es nicht manuell mit dem VI erledigen. AWK geht auch, aber da weiß ich den Syntax nicht. Weil ich ja das dritte Vorkommen suchen muß und davon die Zeilennummer heraussuchen muß. Der Befehl grep geht nicht, weil er mit die Zeilennummer nicht zurück gibt, sonst würde ich mit dem was „programmieren“.

Gruß
Jörg Peter

Hallo,

Shell-script
sed
awk
sogar vi geht automatisch

oder ich würde es mit Perl machen (persönliche präferenz)

sucht dir was aus, lese nach wie es geht und schreibe dein script, wenn du dann wirklich gezielte Fragen hast, stelle sie.

Ein Kochrezept gibst von mir nicht.

dritte Vorkommen suchen muß und davon die Zeilennummer
heraussuchen muß. Der Befehl grep geht nicht, weil er mit die
Zeilennummer nicht zurück gibt, sonst würde ich mit dem was

Falsch (zumindestens unter HP-UX und Linux):
man grep -> /-n

mfg

polar

Hallo,

Folgendes Problem
Ich habe eine Textdatei in der muß ich den Text zwischen zwei
Suchbegriffen löschen. Der Suchbegriff ist immer viermal (!)
vorhanden in einer Datei. Also muß ich das 3. Vorkommen suchen
und das vierte und alle Zeilen dazwischen löschen/filtern.
Würde das ganze gerne mit einem Unix-Script machen, ähnlich
wie ich das mit Suchen/Ersetzen mit SED mache, aber ganz so
einfach ist das wohl nicht. Vielleicht kann mir jemand eine
Möglichkeit nennen.
Das ganze muß in der Nacht als Script laufen (über cron).

Also, das wird schon ein etwas komplexeres Skript.
Da lohnt es sich scho eher mit perl/tcl Hand anzulegen.

Wenn Du es aber mit den Bash-Utilities machen willst dann lass
Dir mit

grep -n 

die Zeilennummern mit ausgeben. Speicher die in irgendner Variable und mach dann ein

sed 'startzeile,endzeile!d'

, für den Fall, daß Du nur diese Zeilen ausgeben willst.
Feddisch

Gruß
Andreas