Frage zu sed und Zeilenumbruch
Hallo Leute, Ich möchte in einer ASCII-Datei am Ende jeder Zeile ein "," setzen. Ich habe es bisher mit folgenden Befehlen versucht cat liste | sed s/\n/",\n"/g cat liste | sed s/\\n/",\n"/g cat liste | sed s/"\n"/",\n"/g Das Problem scheint zu sein, dass sed das \n nicht als Zeilenumbruch erkennt. Gibt es da noch ein anderes Zeichen, an dem sed das Zeilenende erkennt? Danke, Thomas
Thomas Gräber wrote:
Gibt es da noch ein anderes Zeichen, an dem sed das Zeilenende erkennt?
$ ein "sed s/$/,/ datei" sollte den gewuenschten Effekt haben. Peter -- Falls dir meine Antwort nicht passt -> hast du http://www.lugbz.org/documents/smart-questions_de.html gelesen und befolgt?
* On Thu, 08 May 2003 at 10:54 +0200, Stefan Schl?rholz wrote:
Peter Wiersig schrieb am Donnerstag, 8. Mai 2003 10:26:
Thomas Gräber wrote:
Gibt es da noch ein anderes Zeichen, an dem sed das Zeilenende erkennt?
ein "sed s/$/,/ datei" sollte den gewuenschten Effekt haben.
geht dann nicht das Zeilenende verloren?
adalbert@pepe:~ > echo -e '1\n2' | sed 's/$/,/' 1, 2, Noe. /apm -- GPG welcome, request public key: mailto:adalbert+key@lopez.at
----- Original Message -----
From: "Adalbert Michelic"
* On Thu, 08 May 2003 at 10:54 +0200, Stefan Schl?rholz wrote:
Peter Wiersig schrieb am Donnerstag, 8. Mai 2003 10:26:
Thomas Gräber wrote:
Gibt es da noch ein anderes Zeichen, an dem sed das Zeilenende erkennt?
ein "sed s/$/,/ datei" sollte den gewuenschten Effekt haben.
geht dann nicht das Zeilenende verloren?
adalbert@pepe:~ > echo -e '1\n2' | sed 's/$/,/' 1, 2,
Noe. Danke Leute, das hat mir sehr geholfen, aber eine Frage hätte ich noch: Ist es möglich, aus einer Datei irgendwie automatisch die Zeilenumbruchzeichen entfernen zu lassen? Muss ja nicht unbedingt sed sein.
In Perl geht das zum Beispiel so: #!/usr/bin/perl open (DATEI, "/home/joe/liste"); foreach (@list) { $_=~s/\n/" "/g; print DATEI "$_"; } close (DATEI); Danke, Thomas
Hallo, On Thu, 08 May 2003, Thomas Gräber wrote:
Danke Leute, das hat mir sehr geholfen, aber eine Frage hätte ich noch: Ist es möglich, aus einer Datei irgendwie automatisch die Zeilenumbruchzeichen entfernen zu lassen? Muss ja nicht unbedingt sed sein.
| tr -d '\n' -dnh -- He's wandering the wilds of West Buttfsck, administering a little personal attention to Jenny L. User [family motto: "My ISBN isn't working"]. -- K.T. Wiegman
Stefan Schlörholz wrote:
Peter Wiersig schrieb am Donnerstag, 8. Mai 2003 10:26:
Thomas Gräber wrote:
Gibt es da noch ein anderes Zeichen, an dem sed das Zeilenende erkennt?
ein "sed s/$/,/ datei" sollte den gewuenschten Effekt haben.
geht dann nicht das Zeilenende verloren?
Nein, das $ ist nicht das Zeilenende, sondern ein Nullstring direkt davor. Genauso ^ fuer den Zeilenanfang. Peter
* Stefan Schlörholz schrieb am 08.Mai.2003:
Peter Wiersig schrieb am Donnerstag, 8. Mai 2003 10:26:
Thomas Gräber wrote:
Gibt es da noch ein anderes Zeichen, an dem sed das Zeilenende erkennt?
ein "sed s/$/,/ datei" sollte den gewuenschten Effekt haben.
geht dann nicht das Zeilenende verloren?
Nein. Und es ist richtig, $ kennzeichnet das Zeilenende. Nicht aber den Zeilenumbruch. Das ist was anderes, denn nach der letzten Zeile kommt kein Zeilenumbruch mehr, sondern die Datei ist hier einfach zu Ende. Auch das wird durch das $ erkannt. mit sed kann man keinen Zeilenumbruch wegnehmen, jedenfalls nicht so einfach. Bernd -- Bitte die Etikette beachten: http://www.suse-etikette.de.vu/etikette.html Bitte Realnamen angeben, kein Vollquoting, kein Html, PGP oder Visitenkarten benutzen. Signatur mit "-- " abtrennen, bei Antworten "Re: " voranstellen, sonst nichts. |Zufallssignatur 4
participants (6)
-
Adalbert Michelic
-
B.Brodesser@t-online.de
-
David Haller
-
Peter Wiersig
-
Stefan Schlörholz
-
Thomas Gräber