DEUTSCHE VERSION |
|
Links | | | Forums | | | Comments | | | Report news |
Chat | | | Polls | | | Newsticker | | | Archive |
amiga-news.de Forum > Andere Systeme > OT - CVS / sed Probleme | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2002-02-25, 15:08 h Solar Posts: 3680 User |
Eine Frage an die Linuxer / bash Gurus unter uns. Ich weiß, ist nicht unbedingt das richtige Forum, aber die Linux-Gemeinde hat sich mal wieder als so hilfreich wie üblich erwiesen (nämlich gar nicht)... Ich müßte aus Unmengen Quellcode die CVS-Tags ($Id: ...$, $Header: ...$ etc.) bearbeiten. Ziel ist es, die Tags beizubehalten, jedoch die eingrenzenden '$' zu beseitigen. Mit sed den gesamten Tag rauszuhauen, ist kein Problem. Aber wie lösche ich nur die eingrenzenden '$'? Ich nehme auch entsprechende Links dankbar an, aber bitte nicht nochmal ein trockenes "man sed". Wenn ich die Lösung da drin gefunden hätte, würde ich nicht fragen... [ - Answer - Quote - Direct link - ] |
2002-02-25, 18:26 h Hammer Posts: 2899 User |
Hast Du es schon mal mit einem texteditor und dem Finden/Ersetzten Befehl ausprobiert? -- MFG Hammer http://ThaHammer.3d-stuff.de/ Schreibt mir ins Gästebuch!!!!!!!! [ - Answer - Quote - Direct link - ] |
2002-02-26, 07:44 h Solar Posts: 3680 User |
Witzbold. :-D Es geht darum, das Ganze in ein Script zu verpacken, zwecks Wiederverwendbarkeit. Außerdem, verrate mir doch mal, wie Du das im Texteditor machen willst: In: $XYZ (beliebige Zeichenkette) $ Out: XYZ (beliebige Zeichenkette) ...? [ Dieser Beitrag wurde von Solar am 26.02.2002 editiert. ] [ - Answer - Quote - Direct link - ] |
2002-02-26, 12:19 h DrNOP Posts: 4118 User |
Hi Solar. [Suchen-Ersetzen] Setze bei Suchen "$" setze bei Ersetzen "" schon sind die $ entfernt Zwecks Skript: Ich glaub kaum, daß Du dafür Windows und Word einsetzen willst? Da könntest Du den Windows Scripting Host benutzen. Word stellt solche Funktionen auch zur Verfügung, wenn es eigentlich gar nicht gestartet ist ... sofern man weiß, wie Aber eine wirkliche Lösung kann ich Dir auch nicht anbieten, sorry Gruß, Dr.NOP [ - Answer - Quote - Direct link - ] |
2002-02-26, 12:27 h MrMarco Posts: 445 User |
Zitat: Auch wenn du mich gleich in der Mittagspause deswegen jagst... nimm doch endlich Perl dafür... Bash.. .bah... nimm Perl MfG MrMarco [ - Answer - Quote - Direct link - ] |
2002-02-26, 13:47 h Solar Posts: 3680 User |
Zitat: Du bist der König, wirklich. Nur dummerweise sind dann in PHP oder Shell-Scripten auch sämtliche Variablen weg, die fangen nämlich auch mit $ an... :-D Zitat: Unter der bash? Zeig mal, wie geht das... :-D [ - Answer - Quote - Direct link - ] |
2002-02-26, 15:10 h Harlekin Posts: [Former member] |
http://www.rebol.com/platforms.html http://www.rebol.com/download_manual.html code:REBOL [ Title: "zonk" Date: 26-02-2002 Datei: "zonk.r" ] quelledatei: %quelldatei.txt zieldatei: %zieldatei.txt quelle: read/lines quelledatei ;Datei einlesen und in Zeilen aufteilen. foreach zeile quelle [ ergebniss: parse zeile ["$" copy bereinigt to "$" "$"] ;ergebiss=true wenn am anfang der zeile ein $ dazwischen irgendwas und am ende auch ein $ ist. ;das 'irgendwas' wird in 'bereinigt' kopiert. either ergebniss [ ;Wenn ergebniss=true.. write/append zieldatei bereinigt ;..bereinigt an zieldatei anfügen, ] [ write/append zieldatei zeile ;ansonsten unveränderte zeile an zieldatei anfügen. ] write/append zieldatei newline ;zeilenumbruch anfügen. ] Hab ich mal schnell zusammengehackt. Kann man sicher noch viel 'kewler' schreiben aber ich glaube so ist es relativ verständlich (?) und scheint zu funktionieren. Außerdem kann man mit Rebols parse Befehl noch viel raffiniertere Sachen anstellen Viel Spaß beim Betriebssystem programmieren. Die blöden backslashes vor den anführungszeichen gehören natürlich raus *grr* [ Dieser Beitrag wurde von Harlekin am 26.02.2002 editiert. ] [ - Edit - Answer - Quote - Direct link - ] |
2002-02-26, 15:49 h Solar Posts: 3680 User |
Du bist nicht zufällig Lennart Fridén nach einem Crash-Kurs in Deutsch? Der kommt nämlich auch bei jeder passenden und unpassenden Gelegenheit mit REBOL um die Ecke... 1) ist nicht gesagt, daß die Zeile mit $ beginnt und mit $ endet, 2) darfst Du nicht einfach alles zwischen zwei $ löschen - das können z.B. auch zwei PHP- oder Shell-Variablen sein... Ansonsten würde ich Dir (im Spaße natürlich) genauso empfehlen, mal mein erstes Posting zu lesen - da ist die Rede von Linux und bash, nicht von REBOL. Ich möchte dem Anwender des zu erstellenden Scriptes nicht zumuten, wegen sowas erst einmal REBOL installieren zu müssen. Vielen Dank übrigens an Jasper, der im Heise-Forum die Antwort lieferte, und Marco Frischkorn, mit dem ich sie noch etwas verfeinerte: perl -pi.bak -e 's/$([Author|Date|Header|Id|Locker|Name|RCSfile|Revision|Source|Sta te|Log]+?:.+?)$/1/g' "$file" rm "$file.bak" (Der Umweg über .bak war nötig, um's auch unter CygWin zum Laufen zu bringen. Und im Gegensatz zu REBOL gehört Perl unter bash durchaus zu den "Bordmitteln"... ;-) ) [ Dieser Beitrag wurde von Solar am 26.02.2002 editiert. ] [ - Answer - Quote - Direct link - ] |
2002-02-26, 16:08 h Hammer Posts: 2899 User |
Zitat: War kein Witz! War nur als erste Hilfe gedacht. Das im Texteditor ist wirklich so einfach. Finden:$ Ersetzen:"" Aber wenn es Dir dann andere Programmteile zerschiesst ist es natürlich unbrauchbar. Und den Code kenne ich ja nicht, also mach mal langsam! -- MFG Hammer http://ThaHammer.3d-stuff.de/ Schreibt mir ins Gästebuch!!!!!!!! [ - Answer - Quote - Direct link - ] |
2002-02-26, 16:11 h MrMarco Posts: 445 User |
Hum... warst mal wieder schnell mit dem Posten als ich... Hätte das wohl gleich nach unserem Telefonat machen sollen :/code:# ********************************************************************** ********** # * Name : clean_up.pl * # * * # * Beschreibung : Dient zum entfernen von 2 aufeinander folgenden $ in * # * einer (!) Sourcecodezeile. Alle weiteren oder nur ein * # * $ sollen ignoriert und nicht verändert werden und im * # * Text erhalten bleiben. * # * * # * Autor : Marco Frischkorn [MF] * # * Datum : 26.02.2002 * # * ---------------------------------------------------------------------- -------* # * HighAnt Development 2002 * # * ---------------------------------------------------------------------- -------* # * Letzte Änderung : 26.02.2002 * # * Geändert von : Marco Frischkorn [MF] * # ********************************************************************** ********** # * Änderungen: * # * * # * lfdnr Datum Name Bemerkung: * # ********************************************************************** ********** # * [1] 26.02.2002 [MF] Initial Release * # * * # ********************************************************************** ********** use strict; my $strFilename = "test.txt"; # Now we read all lines and use a regular expression on it open(INFILE, "<$strFilename") || die("Error!nFile $strFilename not found!n"); while( <INFILE> ) { # We only want to Look for Id: and/or Name: # Only for Example s/$([ID|Name]+?:.+?)$/1/gi; print $_; } close(INFILE); exit(0); Ja... schlag mich Hehehehe... Aber das sollte eigentlich auch in der Bash funktionieren OHNE gleich Perl aufrufen zu müssen... MfG MrMarco [ Dieser Beitrag wurde von MrMarco am 26.02.2002 editiert. ] [ Dieser Beitrag wurde von MrMarco am 26.02.2002 editiert. ] [ - Answer - Quote - Direct link - ] |
2002-02-26, 16:14 h MrMarco Posts: 445 User |
grummel... verflixter Zeilenumbruch... Irgendwann hack ich mir ein eigenes Eingabeformular für das Forum zusammen... grummel... [ - Answer - Quote - Direct link - ] |
2002-02-26, 16:43 h Harlekin Posts: [Former member] |
Zitat:Nein. Zitat:Ja, sowas kann nerven. Mein Fehler. Zitat:Mist! Dabei hast du dich so präzise ausgedrückt. Wieder mein Fehler. Zitat:Hmm, gelöscht wird da eigenltich nix. Wahrscheinlich trotzdem mein Fehler. Zitat:Da ich hier auf Arbeit zwar alle Arten von Win habe aber weder Linux noch bash, R**** so ziemlich überall läuft, in 30sek installiert ist, und da man in das Skript noch lustigeres hätte einbauen können, dachte ich Mir (im Spaße natürlich) das ist besser als nichts. Auch mein Fehler. Zitat:Ja, das sieht schon viel besser aus. Hätte ich selber drauf kommen müssen. Natürlich mein Fehler. Zitat:Verdammt. Du hast schon wieder recht! Muß ich mir jetzt blöd vorkommen? Schönen Tag noch. [ - Edit - Answer - Quote - Direct link - ] |
2002-02-26, 18:14 h Solar Posts: 3680 User |
@ Harlekin: Da in Deinem Posting jeglicher Smiley fehlt, gehe ich mal davon aus, daß Du Dir auf den Schlips getreten fühlst. Das tut mir leid, denn es war mit Sicherheit nicht beabsichtigt. [ - Answer - Quote - Direct link - ] |
2002-02-27, 10:12 h Solar Posts: 3680 User |
Andersrum habe ich auch mit Smileys gespart, also ist das wahrscheinlich mein Fehler. Ist eCommunication nicht etwas feines... :-( [ - Answer - Quote - Direct link - ] |
2002-02-27, 10:31 h Hammer Posts: 2899 User |
Zitat: Ja! -- MFG Hammer http://ThaHammer.3d-stuff.de/ Schreibt mir ins Gästebuch!!!!!!!! [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Andere Systeme > OT - CVS / sed Probleme | [ - Search - New posts - Register - Login - ] |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved. |