PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sed mac und newline character



Waxolunist
18-12-2006, 23:05
Hallo

Ich versuche gerade ein Skript auf Mac OSX zu portieren. Denkt man, na kein Problem, einfach andere newlines, anderer Interpreter. Aber irgendwie krieg ichs nicht hin. Vor allem ein sed-Kommando macht mir Sorgen:

Von scanimage bekomme ich folgende Zeile raus:
-l 0..215mm [0]

0 und 215 möchte ich in einen Array einlesen, aber das geht eben nur wenn ich folgendes herauskitzle:

0
215

folgendes Skript funktioniert bei mir nicht


#!/bin/sh
echo `echo -l 0..215mm [0] | grep "\-l " | sed -e "s#.*\ \([0-9]*\)\.\.\([0-9]*\).*#\1\r\2#g"`

ergibt bei mir 0r215

wenn ich statt des r's folgendes schreibe

#\1\\
\2#

bekomme ich 0215, obwohl genau das auf der kommandozeile funktioniert.

wenn jemand rat weiß, bin ich dankbar

lg, christian

Romanday
18-12-2006, 23:25
wenn jemand rat weiß, bin ich dankbar

lg, christian

Sitze jetzt nicht gerade am Mac, aber probier mal \r\n oder \n\r.
Eins von beiden sollte funktionieren.

Christoph
19-12-2006, 07:36
Ich versuche gerade ein Skript auf Mac OSX zu portieren. Denkt man, na kein Problem, einfach andere newlines, anderer Interpreter.

Sei MacOS X verwendet der Mac auch \n und nicht mehr \r.
sed ist allerdings nicht die GNU-Version, sondern die BSD-Version.

Waxolunist
19-12-2006, 08:26
Sitze jetzt nicht gerade am Mac, aber probier mal \r\n oder \n\r.
Eins von beiden sollte funktionieren.

Das ist es ja gerade, schreibe ich \r zwischen der ersten und zweiten Gruppe, so kommt erste Gruppe r zweite Gruppe raus. Bei \n\r entsprechend nr.

Mit dem Array das war so eine Sache, da hab ich ein bisschen was weitergebracht. Mit ($( am Anfang statt `, gehts. Und statt eines Newlines mit backslash, brauchts 2 Backslashes und einen richtigen Zeilenumbruch. Was solls. Hauptsache es funktioniert so einmal.

lg, christian