Ich habe eine binäre Datei, die ich hex Bytes in diesem regex suchen/ersetzen möchten. Ich weiß, dass es Befehlszeilenmethoden gibt, um dies mit Perl zu erreichen, aber wenn es eine Möglichkeit gibt, dies mit Objective-C/Cocoa zu tun, konnte ich es nicht finden. Die Perl-Methode von der Kommandozeile in OSX, die gut funktioniert, obwohl ich in einer Cocoa-Anwendung so zu übernehmen möchte - dankObjective-C Regex ersetzen Hex-Bytes?
Binärdatei: TEST
45 76 65 6E 20 69 66 20 79 6F 75 20 66 61 6C 6C 20 6F 6E 20 79 6F 75 72 20 66 61 63 65 2C 20 79 6F 75 27 72 65 20 73 74 69 6C 6C 20 6D 6F 76 69 6E 67 20 66 6F 72 77 61 72 64 2E 20
Bytes zu ersetzen: 66 61 63 ersetzen mit: 61 72 73
Perl Beispiel:
# grep -Z -r -l face TEST | xargs -0 perl -pi -e "s/\x66\x61\x63/\x61\x72\x73/g"
@Inafziger, vielen Dank für die Beispiel. Ich kompilierte Ihren Code (keine Fehler), führen Sie es aus (keine Fehler), obwohl die Datei unverändert bleibt. Alles scheint so zu sein, dass es funktionieren sollte, also bin ich ein wenig perplex. Wenn Sie irgendwelche Gedanken haben, lassen Sie es mich wissen. –
Haben Sie es im Debugger durchlaufen, um zu sehen, ob es früh zurückkehrt? – lnafziger
Nach dem Ausführen des Debugger es es sieht für diese erscheint: 'Bytes \t char [3] \t [0] \t char \t 'B' [1] \t char \t '=' [2] \t char \t ' ? 'und newbytes ist:' new_bytes \t char [3] \t [0] \t char \t '=' [1] \t char \t 'H' [2] \t char \t 'I'' - so sieht es aus wie ein Codierproblem? –