sed macht mich wahnsinnig :-(

T

Tommy_WY

Mitglied
hi @ all,

ich möchte die in einer datei in einer zeile abgelegten werte (mit komma getrennt) in eine andere datei als spalten eintragen.
data.txt enthält 1,2,3,4
datb.txt soll dann so aussehen.
1
2
3
4
also das komma durch eine neue zeile ersetzt.
dazu hab ich mir den sed genommen, aber es will einfach nicht funzen
ich nutze ksh und aix5.3
so sieht der sed aufruf aus

sed -e s/,/^n/g ${WD}/virt.properties > ${WD}/install.properties

ich habs auch schon mit
sed -e s/,/\n/g ${WD}/virt.properties > ${WD}/install.properties
oder
sed -e s/,/\\n/g ${WD}/virt.properties > ${WD}/install.properties

probiert, aber ich bekomme den zeilenumbruch nicht hin

ergebnisse der ausgabe
1n2n3n4
oder
1^n2^n3^n4

what ever, aber nicht das was ich möchte.

für nen tip wäre ich echt dankbar... hab keine lust das mit ant-targets und regexp zu machen.

die datei enthält nachher eine liste mit virtuellen portalen, in die eine anwendung bzw. die pages installiert werden sollen.

gruss
tommy
 
Warum nicht einfach "tr" statt "sed"?
Code:
$ echo "1,2,3,4" | tr "," "\n"
1
2
3
4
$

Gruss
 
merci, coole geschichte... klappt super
danke danke.

servus
 
Hier funktionierts:
Code:
$ echo '1,2,3,4'|sed 's/,/\n/g'
1
2
3
4
$ echo '1,2,3,4'|sed s/,/\\n/g
1
2
3
4
$ sed --version
GNU sed version 4.1.5
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
to the extent permitted by law.
$ $0 --version
GNU bash, version 3.2.25(1)-release (i486-pc-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Welche shell(-Version) und sed-Version benutzt du?
 
Welche Korn-Shell das genau ist, ist damit zwar nicht gesagt, aber ich würde mal hart darauf tippen, dass es an der verranzten sed-Version liegt.
Da der OP allerdings keinerlei quoting probiert hat, könnte natürlich auch dort der Hase im Pfeffer begraben rotieren. (Wie ging das Sprichwort noch gleich?)
perl for portability. Oder man könnte sich die gnu-Varianten der populären cli-tools holen. (Gibts laut wiki als RPM für AIX.)
 
Wie bekomme ich raus, welche sed-Version wir auf der Maschine habe???
Das Problem ist, dass ich nicht einfach etwas auf die Maschine bringen kann. Hab auch schon länger über Perl nachgegrübelt.
Aber das tr hat mir schon super geholfen. Mit der ant-Erweiterung antcontrib hat dann alles super gefunzt. Da kann ich die Shellbefehle easy in das Tag <shellscript> einbauen, muss mich um keine Parameterübergabe kümmern und erhalte das gewünschte Ergebnis.

Geiles Ding.
Danke nochmals an alle.

Sers
Tommy
 

Ähnliche Themen

Wertebereich ersetzen mit sed

Text mit mehreren Zeilen und Sonderzeichen ersetzten

Zeielenblock von einer Datei in eine neue schreiben

Aus pipeline in eine Datei schreiben mit und ohne Zeilenvorschub

Charakter ersetzen in spez. Bereich mittels sed

Zurück
Oben