Re: Zeilen Ersetzen



Le Sat, 18 Oct 2008 09:40:52 +0200, Matthias Taube a écrit :

mittels sed kann ich ja innerhalb einer Zeile von Dateien einen
Suchstring durch einen anderen ersetzen.

Ich suche aber eine Lösung, um innerhalb einer Datei alles zwischen den
Zeilen (ausschließlich)
PF_ORIG_CONFIG=
PF_NEW_CONFIG=
durch andere Zeilen zu ersetzen.

s='
'
a=$(awk '/PF_ORIG_CONFIG=/{print NR}' FILE)
b=$(awk '/PF_NEW_CONFIG=/{print NR}' FILE)
(cut -d"$s" -f"-$a" FILE; cat INSERTFILE; cut -d"$s" -f"$b-" FILE)

FILE steht für das Orginalfile und INSERTFILE für die Datei, welche die
einzusetzenden Zeilen enthält. Mit awk werden die Zeilennummern der
Zeilen, welche die beiden Suchbegriffe enthalten, bestimmt. Als
Feldseparator für cut ist eine newline gesetzt. Die runde Klammer in der
letzten Zeile hält die Ausgabe von cut, cat und nochmals cut zusammen.
Die beiden Suchstrings müssen im HAUPFILE vorkommen, dies jedoch nur je
genau einmal, sonst macht cut nicht mit.

Das gleiche nochmals als roher Entwurf eines Shellskript mit vier
Komandozeilenparametern:

***
#! /bin/sh
# zeilenersatz.sh
# 20081019 lg GPL

if [ $# -ne 4 ]; then
echo "SYNOPSIS: $0 FILE STARTSTRING ENDSTRING INSERTFILE"
exit
fi

a=$(awk '/'"$2"'/{print NR}' "$1")
b=$(awk '/'"$3"'/{print NR}' "$1")
s="
"
(cut -d"$s" -f"-$a" "$1"; cat "$4"; cut -d"$s" -f"$b-" "$1")
***

Es gibt sicher viel elegantere Lösungen, und Obiges ist nicht auf
alle möglichen Sonderfälle getestet. Kritik willkommen.

lg


.



Relevant Pages

  • Re: FILE()
    ... Foxpro macht sich nicht mal die Mühe eine inkludierte Datei auf der Platte zu suchen. ... eine Datei innerhalb des Projekts, dann darf FILE() kein .T. liefern, ... Pfade zu einigen Bildern enthalten sind. ...
    (microsoft.public.de.fox)
  • Re: PRN-Datei ändern
    ... ob die .prn-Datei ständig im Zugriff ... File System Object nach. ... Im Prinzip läuft es darauf hinaus, die Originaldatei zeilenweise einzulesen, ... Datei bearbeitet, wird die Originaldatei gelöscht und die neue Datei mit dem ...
    (microsoft.public.de.german.scripting.wsh)
  • Re: Datenzugriff bei File Copy
    ... Hab ein sehr komisches Problem bei der File Copy Methode in c#. ... Auf jeden Fall wird ca alle 30sec eine Zeile in der Ascii Datei angefügt. ... Um diesem Programm so wenig wie möglich in die Quere zu kommen habe ich mir kurzerhand gedacht ich kopiere das File ... Fakt ist auf jeden Fall seit einer Umstellung der Daten Server Hardware und damit Software von Win NT4 auf Win 2003 Server ...
    (microsoft.public.de.german.entwickler.dotnet.csharp)
  • Re: VBA Open (Notify)
    ... > True setze und irgendjemand das gewünschte File schließt, ... > bekomm ich eine Notify, dass ich die Datei jetzt als Read- ... > (Auch nicht als ReadOnly?) Oder ist das nur blöd formuliert? ...
    (microsoft.public.de.excel)
  • Re: Win2000 Update Fehler
    ... Die Datei Hosts auch in Ordnung? ... Im File gab es keine Referenzen zu Winupdate ... updates zeigte und jetzt passiert nichts während mehr als 20 Minuten... ... und starte den Rechner neu ...
    (microsoft.public.de.german.win2000.sonstiges)