[sed:] Ersetzen mit newline

@uselessuser

Jetzt würde mich intersessieren, was:

$ whereis sed

und

$ find /usr -name sed

ergeben.

Hast du einen Clean-Tiger-Install oder einen Upgrade von Panther gemacht?
 
Zuletzt bearbeitet:
uselessuser schrieb:
...
Photon:~ thgoebel$ sed -V
GNU sed version 4.0.5
[schnipp]
...
Das ist aber dann eine nachinstallierte sed Variante mit der Du wohl kaum prüfen kannst, ob mein Kommando mit der Mac OS X sed Variante funktioniert ;).
Ersetze doch mal in meinem Kommando sed durch /usr/bin/sed und schau, ob es dann geht.
Wenn Du Dein Mac sed nicht überschreiben hast, müsste das klappen.
 
@chen: Beidesmal /usr/bin/sed, womit sich wohl auch maceis' Vorschlag erledigt hat. Ist übrigens eine saubere Installation (relativ neues iBook G4 :)), nur das letzte größere Update von Apple ist "nachinstalliert".
Womit sollte ich denn das "OSX-sed" überschrieben haben? Das muss dann ja bei der gsed-Installation passiert sein, aber der hat doch nicht aus Spaß noch ein gsed in /usr/bin geschrieben? Ich bin verwirrt.
 
Also ich vermute, dass du sed überschrieben hast. Denn:

Wenn Apple Gnu-Sed benutzen würde, dann müssten sie sich an die GPL halten und den Source-Code von Sed anbieten. Auf der Darwin-Seite ist jedoch sed nicht als Source angeboten, folglich hast du die originale sed Version (wohl BSD-Licence) mit Gnu sed überschrieben.
 
Der Sourcecode, der sed Variante, die in Mac OS X installiert ist, ist im Internet verfügbar, allerdings ist es kein gnu sed.

Tja, sieht so aus, als ob die GNU Schreiberlinge nicht nur die Single UNIX Spezifikation hinsichtlich sed ignorieren, sondern auch nicht in der Lage sind, vernünftige Makefiles zu schreiben (oder Du hast flasche Optionen angegeben) ;).

Du könntest auch mal nachsehen, ob eines Deine sed Kommandos evtl. ein symlink ist und ob evtl die Original sed Installation vom Installer umbenannt wurde.
 
maceis schrieb:
Der Sourcecode, der sed Variante, die in Mac OS X installiert ist, ist im Internet verfügbar, ...
Aber nicht auf der Apple-Darwin-Seite (oder ich hab's übersehen) und wäre es sed laut GPL müsste Apple auch den Source anbieten.
 
hm, das haben die ja wieder gut versteckt
 
.. und dann habe ich da noch einen documentation bug gefunden:
Code:
man sed:
...
Sed Regular Expressions
     The regular expressions used in sed, by default, are basic regular
     expressions (BREs, see re_format(7) for more information)
...

man re_format
...
     A piece is an atom possibly followed by a single= `*', `+', `?', or
     bound.  An atom followed by `*' matches a sequence of 0 or more
     matches of the atom.  An atom followed by `+' matches a sequence of
     1 or more matches of the atom.
...
Code:
% echo "hallo" | sed "s/h*/--/" 
--allo
% echo "hallo" | sed "s/h+/--/" 
hallo
% echo "hallo" | sed "s/h?/--/"
hallo
Autsch!
 
Hi hi hi, hast schon brav nen Bugreport geschrieben? :)
 
okay, ich habs gefunden.
Hab beim ersten Lesen nicht kapiert, dass sich der letzte Abschnitt (der mit "Obsolete" beginnt) BRE meint.
So geht´s:
Code:
% echo "hallo" | sed -E "s/h+/--/" 
--allo
 
Zurück
Oben Unten