Anzeige:
Ergebnis 1 bis 7 von 7

Thema: hexwertfolge komplett ändern

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registrierter Benutzer
    Registriert seit
    11.10.2005
    Beiträge
    8
    Danke werde ich ausprobieren.
    Beim SED ist das Problem der der nicht die Hexwerte erkennt sondern nur den Text in der Datei und der ist leider ?(zeilenumbruch)' und das konnte ich nicht abfragen.
    Wobei ich mir nicht ganz sicher bin ob das nicht doch gehen könnte
    sed "s/?\n'/?'\n/g" ging nicht
    Gruß

  2. #2
    Registrierter Benutzer
    Registriert seit
    02.09.2004
    Ort
    Mannheim
    Beiträge
    102
    Geht das jetzt?
    Würde mich wundern, weil der 0a ja Zeilentrenner ist, d.h. beim zeilenweise verarbeiten niemals das Zeichen nach dem Zeilentrenner im Patternspace ist.
    Bei sed ist das ziemlich nervig, da kann man wohl manuell die Pufferkontrolle übernehmen, aber das ist komplizierter, als ein kleines C-Programm zu schreiben.
    Angeblich gibt es für sed einen Multiline-Modus, ich habe es mit meinem GNU sed noch nciht geschafft, Patterns über mehrere Zeilen hinweg zu adressieren.
    Für Perl habe ich mal ein MIniskript gebaut, welches immer eine Zeile hinzuliest und dann mit der Doppelzeile nach Patterns sucht (eigentlich arbeitet es mit einem Doppel-Pattern <zeilenende>/n<zeilenanfang>).
    Greetz
    Thomas
    Code:
    #!/usr/bin/perl
    
    #$z_end = "ende";
    #$z_anf = "anfang";
    #$new_end ="EEEE";
    #$new_anf = "AAAA";
    
    if (@ARGV <2) { die "Es werden 2 Paramter benoetigt: ende#anfang und endeneu#anfangneu!\n"; }
    
    @finde = split /#/, $ARGV[0];
    @ersetze = split /#/, $ARGV[1];
    print "Finde: @finde, ersetze: @ersetze\n";
    
    $lin2="";
    while (<STDIN>) {
    	$lin1 = $lin2;
    	$lin2 = $_;
    	if (($lin1 =~ /($finde[0])$/) and ($lin2 =~ /^($finde[1])/)) {
    		  $lin1 =~ s/($finde[0])$/$ersetze[0]/;
    		  chomp ($lin1);
    		  $lin2 =~ s/^($finde[1])/$ersetze[1]/;	
    	}
    	print $lin1;
    }
    Geändert von tschloss (08-12-2005 um 10:45 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •