Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
erweitertes "patch" gesucht / erledigt durch DIY
#1
Hallo

Vorab:
bitte keinen grossen Aufwand betreiben
---soo wichtig issen nich

ich bin auf der Suche nach einen Programm/Script, das
folgendes machen soll

- suchen und ersetzen eines Textblockes in einer Datei (orginal.txt)
- der zu suchende Textblock soll in einer 2ten Datei sein ( zu_ersetzen.txt)
- der einzufügende in einer 3. Datei (einzufügen.txt )

also im Aufruf sowas wie:
Code:
#: extpatch orginal.txt  zu_ersetzen.txt  einzufügen.txt
sollte dann ein gepachtes orginal.txt ergeben

die Kombi diff/patch geht in diesem Falle nicht, da die zu patchende Datei
bereits andere Änderung enthalten könnte 

da ich selber bei sed, awk etc.  blutiger Anfänger bin und
die Suche in I-Net mir auch nicht geholfen hat..... 

naja vlt. hat ja jemand ´ne Idee

  Gruß
    Captain_Beefheart
pille: (vdr1)
Anubis TYPHOON DVB-T Light;Terratec Cinergy1200; GA-M56S-S3; AMD X2 3800(35W); 2x1GB, PCIe 9500GT/LE-40M86BD; Hitachi 320GB; IDE DVD; OCZ 32GB SSD; Trust C-5250/opt./Denon-AV; lirc/DVICO/MD81035; USB-HD 256GB & 1TB ; GraphTFT/LCD 15"; easyVDR 1.0
chekov: (vdr2)
Esprimo5600/1,5GB/AMD Athlon64 X2 3800+; Club-3D GS8400 512MB/G98/19"CRT;Nova T-500; OCZ 32GB SSD, IDE DVD-Rom;  lirc/DVICO/MD82467; easyvdr1.0

[color=#00008B]scotty: (work - no vdr)
GA-M52L-S3; AMD X4; 4x1GB, NVidia 9800GT/1GByte; Hitachi 320GB;60GByte SSD; 80GByte Hd for wine; SATA DVD; Trust C-5250;Kubuntu 12.10; Netz: Intel GBit PCIe cardt + ...
Zitieren
#2
Hi C.B.

sed macht das eigentlich schon ganz gut:



sed -i 's/textalt/textneu/g' /pfad/dateiname

= Ersetze (substitute) direct im File (-i) alt durch neu.

textneu kann auch aus mehreren Zeilen bestehen, der Zeilentrenner ist dann \n also

sed -i 's/textalt/textneuzeile1 \n textneuzeile2/g' /pfad/dateiname

Evt. muss man sonderzeichen wie / oder () oder " backslashen, also \/ nutzen, da / auch benutzt wird um alt von neu zu trennen.

Sicherheitshalber vorher überprüfen, ob text neu schon drin,
wenn nicht tue...

if [ `cat /etc/X11/xorg.conf |grep textneu | wc -l ` = 0  ] ; then

  # sed...

fi

Nach ich das von den Scriptig-Experten hier im Forum beigebracht bekommen hatte, hab ich so einige der Scripte zur 0.7er-Entwicklung zurechtgefummelt...

Gruß
Michel
Produktiv-VDR:
msi K9N2G-Neo (nvidia 8200 onBoard) mit Athlon X2 4850e mit SamuraiZZ
2xNova-HDS2, DH102
Zitieren
#3
Hi Michel

--- dachte Du bist im Urlaub ---

  dann habe ich ja schon mal den Anfang
vlt. bekommen jetzt ja den Rest "rundrum" gebastelt

ich dachte mir, wenn man sowas hat, muss man nich für jedes Kram
das man irgentwo einbauen will, wieder von vorne anfangen...

  gruß
    C.B.
pille: (vdr1)
Anubis TYPHOON DVB-T Light;Terratec Cinergy1200; GA-M56S-S3; AMD X2 3800(35W); 2x1GB, PCIe 9500GT/LE-40M86BD; Hitachi 320GB; IDE DVD; OCZ 32GB SSD; Trust C-5250/opt./Denon-AV; lirc/DVICO/MD81035; USB-HD 256GB & 1TB ; GraphTFT/LCD 15"; easyVDR 1.0
chekov: (vdr2)
Esprimo5600/1,5GB/AMD Athlon64 X2 3800+; Club-3D GS8400 512MB/G98/19"CRT;Nova T-500; OCZ 32GB SSD, IDE DVD-Rom;  lirc/DVICO/MD82467; easyvdr1.0

[color=#00008B]scotty: (work - no vdr)
GA-M52L-S3; AMD X4; 4x1GB, NVidia 9800GT/1GByte; Hitachi 320GB;60GByte SSD; 80GByte Hd for wine; SATA DVD; Trust C-5250;Kubuntu 12.10; Netz: Intel GBit PCIe cardt + ...
Zitieren
#4
(06.08.2010, 18:41)Captain_Beefheart link schrieb: --- dachte Du bist im Urlaub ---

  dann habe ich ja schon mal den Anfang
vlt. bekommen jetzt ja den Rest "rundrum" gebastelt
Urlaub erst ab Dienstag, aber bis dahin recht wenig Zeit...

Das Mühsame ist das Austesten da man immer den einen oder anderen Backslash vergisst oder mit den Sonderzeichen Probleme bekommt, daher habe ich dann immer Zeile für Zeile ausprobiert.

Dauser der Scripting König macht das in den deb-files etwas anders:
Siehe mvptimer_0.8.deb/data.tar.gz/data.tar/tmp/mvptimer.tar.bz2/mvptimer.tar/tmp/mvptimer/install.sh im Anhang von diesem Post http://www.easyvdr-forum.de/forum/index....l#msg82760

Gruß
Michel
Produktiv-VDR:
msi K9N2G-Neo (nvidia 8200 onBoard) mit Athlon X2 4850e mit SamuraiZZ
2xNova-HDS2, DH102
Zitieren
#5
Zitat:Dauser der Scripting König
Uuui!
Die Krone gib ich an Uwe weiter.
Easyvdr ist voll von guten Ideen von denen ich abgeguckt habe.
Ich würde helfen.
Ich brauche ein beispiel das alle aufgaben
erfüllt.
Sed hin oder herr. Vielleicht geht es ja.
Aber man könnte es auch einfach mit cat machen
ermitteln ob Text vorhanden ist (grep)
Wenn ja
cat Zeile von bis in datei |cat neuer text|cat rest des Dokuments
text ersetzen und rechte anpassen.
Aber vielleicht auch einfach nur sed Wink

HauptVDR AMD Goede 1750(Easyvdr )
mit FF_TT2.3 Skystar2.6c  lautloser Rechner weil er im Keller steht.
Viele MVPs und ein Raspberry PI
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste