[gelöst]Texte mit Nullbytes anstelle Newlines filtern

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Phineas
Beiträge: 348
Registriert: 20.06.2012 20:26:19

[gelöst]Texte mit Nullbytes anstelle Newlines filtern

Beitrag von Phineas » 15.07.2013 01:14:49

Manchmal muss ich bei Stapelverarbeitungen mit den wildesten Zeichen in den Dateinamen klarkommen (z.B. Newlines). Mit Nullbytes und der Bash mit ihren Builtins, geht das auch ziemlich gut. Auch find -exec und xargs sind mir vertraut.

Ich würde aber gerne auch Textfilter auf "Nullbyte-Zeilen" anwenden können. Das Newline soll also ein normales Zeichen sein. Was ich kenne:

Code: Alles auswählen

tr "\0x0" ...
grep -Z ...
sort -z ...
Gibt es noch andere Textfilter, die damit umgehen können?

Benutzeravatar
Phineas
Beiträge: 348
Registriert: 20.06.2012 20:26:19

Re: [gelöst]Texte mit Nullbytes anstelle Newlines filtern

Beitrag von Phineas » 03.08.2013 05:40:33

Keine Antwort ist hier auch eine Antwort. Ich setze den Thread auf gelöst.

linuxCowboy
Beiträge: 287
Registriert: 05.02.2013 19:47:41

Re: [gelöst]Texte mit Nullbytes anstelle Newlines filtern

Beitrag von linuxCowboy » 03.08.2013 17:13:28

Vielleicht geht's nicht nur mir so dass ich nicht weiß, was du eigentlich erreichen willst?

Natürlich gibts multiline-handling in "Textfiltern". Bei komplizierteren Sachen nehme ich perl.

Werde doch mal konkret!
-der_linux_cowboy --- Besser werden! ... f*** w$$

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: [gelöst]Texte mit Nullbytes anstelle Newlines filtern

Beitrag von Cae » 03.08.2013 17:25:12

Uebrigens duerfen Dateinamen zumindest bei ext* weder / noch Nullbytes enthalten. Also ist's vielleicht geschickt, eventuelle Nullbytes per tr zu killen oder mit sed 's/\x00/NUL/g' zu ersetzen.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
Phineas
Beiträge: 348
Registriert: 20.06.2012 20:26:19

Re: [gelöst]Texte mit Nullbytes anstelle Newlines filtern

Beitrag von Phineas » 03.08.2013 18:30:09

Cae hat geschrieben:Uebrigens duerfen Dateinamen zumindest bei ext* weder / noch Nullbytes enthalten.
Genau darum geht es. Die Nullbytes erzeuge ich also mit Absicht, als einzig sicheres Trennzeichen.

Mein 2. Post war übrigens kein Frustpost, sondern so gemeint, wie es da steht: Ich betrachte das Thema als gelöst. "sort -z" ist herrlich bequem, aber bei komplizierteren Aufgaben muss ich halt weiter die Bash (while read -d '' ...) benutzen.

Perl mag ich wie die Pest. Nach jedem Update laufen einige Scripte nicht mehr, damit kann ich nicht leben.

Benutzeravatar
Phineas
Beiträge: 348
Registriert: 20.06.2012 20:26:19

Re: [gelöst]Texte mit Nullbytes anstelle Newlines filtern

Beitrag von Phineas » 03.01.2014 20:53:49

Nachtrag:

Awk führt die Builtin-Variable "RS" bzw. "ORS" als Zeilenende-Separator. Hier kann man das Nullbyte hexadezimal oder oktal setzen.

Damit bin ich vollends zufrieden, denn awk deckt alles ab, was ich brauche.

Antworten