"bash gar keine bash?" oder "Wie geht New_Line?"

T

tuxlookalike

Registriert
Thread Starter
Dabei seit
10.12.2006
Beiträge
3
Reaktionspunkte
0
Hallo, liebe Community!

Ich habe folgendes Problem: Wenn ich innerhalb eines Perl-Programms in regulären Ausdrücken oder in der bash z.B. "sed '/ /\n/g' eingebe, wird "\n" nicht als New_Line interpretiert, sondern als "n".
Hm, ich muss zugeben, der Titel ist etwas irreführend, da das Problem nicht nur unter der bash, sondern auch sh und csh auftritt. Solaris oder Linux kennen das Problem nicht. Weiß vielleicht jemand, woran das liegen könnte und wie ich das Problem lösen kann? Ich möchte nur ungern auf meinem MacBook Linux installieren (auch wenn ich großer OpenSource-Fan bin...).

Danke schon mal im Voraus,

tuxlookalike

p.s.: Ich habe es unter 10.4 und 10.5 getestet
 
man page schon gelesen?

2. The escape sequence \n matches a newline character embedded in the
pattern space. You can't, however, use a literal newline character
in an address or in the substitute command.
 
Danke für die schnelle Antwort. Ja, aber hab ich wohl überlesen :)
Aber warum kann es dann DIE bash (Linux) und die bash (Darwin) nicht?
bash = bash? Oder betrifft das dann gar nicht die bash/sh/csh/...
:confused:
 
du benutzt da ein sed, das hat nichts mit der shell zu tun.
von sed gibt es varianten, auf linux findest du meistens das gnu sed.
das unterscheidet sich leicht vom bsd sed...
 
Ah, ok. Klar, soweit hätte ich auch denken sollen.... Also hab ich keine Chance, mittels "meinem" sed einen Text in meinem Sinne zu bearbeiten... Mist. Danke noch mal.

Was mir aber dann noch am Herzen liegt, ist die Geschichte mit regulären Ausdrücken, z.B. in Perl: (Sollte ich ein neues Thema eröffnen?). Hier betrifft es Perl (und nicht die bash), und das dürfte sich ja wohl nicht unterscheiden:

Das tut unter Linux, unter Mac nicht:

$String = "Hallo, dies ist ein Text.";
$Eingabe = <stdin>;
$String =~ /$Eingabe/ {print "True"} else {print "False"};
...
 
Zuletzt bearbeitet:
du kannst auch den gnu sed mal eben selbst compilieren ;)

eigentlich sind die perl regexp doch plattform unabhängig.
welche perl version hast denn unter linux?
 
...
Also hab ich keine Chance, mittels "meinem" sed einen Text in meinem Sinne zu bearbeiten...
..
Doch, natürlich. Warum denn nicht?
Code:
echo Hallo Leute | sed 's/o L/o\
L/'
Hallo
Leute

Was die Frage zu den regulären Ausdrücken in Perl angeht.
Was "tut" unter Linux und unter Mac nicht.
Was soll es denn tun? Und was tut es stattdessen? Was tust Du dabei?
Abgesehen davon, lese ich in meiner Glaskugel, dass da ein 'chomp' fehlt. Oder Du hast die Variablen verwechselt :D.
 
Zurück
Oben Unten