Hallo Listenleser ! Ich habe hier eine (DOS)Textdatei, der ich alle Zeilenumbrüche mit cat file.txt | tr -d "\n" | tr -d "\r" >new.txt entnommen habe. Nun will ich an gezielten Stellen wieder einen Zeilenumbruch einfügen. Genau soll dies überall dort sein, wo das Wort Schlüssel steht. Meine Idee war cat new.txt |sed -e 's/Schlüssel/\n/g' >new2.txt Leider wird in der Datei unabhängig, ob ich " oder ' für sed benutze, das Wort Schlüssel durch ein n ersetzt. Wieso wird das \n nicht zum Newline Zeichen ersetzt ?
On Wed, 2003-05-14 at 10:59, Koerner, Sebastian wrote:
Hallo Listenleser ! Ich habe hier eine (DOS)Textdatei, der ich alle Zeilenumbrüche mit cat file.txt | tr -d "\n" | tr -d "\r" >new.txt entnommen habe. Nun will ich an gezielten Stellen wieder einen Zeilenumbruch einfügen. Genau soll dies überall dort sein, wo das Wort Schlüssel steht. Meine Idee war
cat new.txt |sed -e 's/Schlüssel/\n/g' >new2.txt
Leider wird in der Datei unabhängig, ob ich " oder ' für sed benutze, das Wort Schlüssel durch ein n ersetzt.
Zwei ungetestete Versuche: 1. cat new.txt |sed -e 's/Schlüssel/<CTRL>+V<RETURN>/g' >new2.txt 2. cat new.txt |sed -e 's/Schlüssel/\\n/g' >new2.txt HTH V.
* Am Mit, 14 Mai 2003 schrieb Volker Kroll:
On Wed, 2003-05-14 at 10:59, Koerner, Sebastian wrote:
Hallo Listenleser ! Ich habe hier eine (DOS)Textdatei, der ich alle Zeilenumbrüche mit cat file.txt | tr -d "\n" | tr -d "\r" >new.txt entnommen habe. Nun will ich an gezielten Stellen wieder einen Zeilenumbruch einfügen. Genau soll dies überall dort sein, wo das Wort Schlüssel steht. Meine Idee war
cat new.txt |sed -e 's/Schlüssel/\n/g' >new2.txt
Leider wird in der Datei unabhängig, ob ich " oder ' für sed benutze, das Wort Schlüssel durch ein n ersetzt.
Zwei ungetestete Versuche:
1. cat new.txt |sed -e 's/Schlüssel/<CTRL>+V<RETURN>/g' >new2.txt 2. cat new.txt |sed -e 's/Schlüssel/\\n/g' >new2.txt
Nein, die tun es beide nicht, aber cat new.txt|sed -e 's/Schlüssel/\ /g' > new2.txt geht (mit einem ganz normalen Return) Gruß Christoph -- Christoph Maurer - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen
Am Mittwoch, 14. Mai 2003 12:07 schrieb Christoph Maurer:
Nein, die tun es beide nicht,
aber cat new.txt|sed -e 's/Schlüssel/\ /g' > new2.txt
geht (mit einem ganz normalen Return)
Und wenn das dann zu unhandlich wird, kann man es auch einfach hex angeben: cat new.txt|sed -e 's/Schlüssel\x0A/g' > new2.txt Ist auch sonst ganz praktisch, wenn man mit Zeichen arbeitet, die man auf der Tastatur nicht findet. -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
Am Donnerstag, 15. Mai 2003 22:37 schrieb Manfred Tremmel:
cat new.txt|sed -e 's/Schlüssel\x0A/g' > new2.txt
Sorry, da fehlt natürlich ein / cat new.txt|sed -e 's/Schlüssel/\x0A/g' > new2.txt -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
Hallo, On Thu, 15 May 2003, Manfred Tremmel wrote:
Am Donnerstag, 15. Mai 2003 22:37 schrieb Manfred Tremmel:
cat new.txt|sed -e 's/Schlüssel\x0A/g' > new2.txt
Sorry, da fehlt natürlich ein /
cat new.txt|sed -e 's/Schlüssel/\x0A/g' > new2.txt
Hm. Is mein sed zu alt? $ echo 'abc' | sed -e 's/b/\x0A/g' ax0Ac Is jedenfalls nicht portabel... Achso: $ sed --version | head -1 GNU sed version 3.02 Portabel ist die Version mit dem eingebetteten Newline: $ echo 'abc' | sed -e 's/b/\
/g' a c
-dnh -- Das Problem ist vermutlich auf schlechte Erdung zurueckzufuehren. Schlagt einfach zwei Stahlnaegel in die Turnschuhe eures MCSEs. So koennen die Ueberspannungen aus dem Kopf abfliessen, und Euer Mann achtet auch mehr auf seine Sicherheit in der Naehe von Computern. -- M. Liss in dasr
Am Freitag, 16. Mai 2003 00:03 schrieb David Haller:
Hm. Is mein sed zu alt?
Vielleicht.
$ echo 'abc' | sed -e 's/b/\x0A/g' ax0Ac
Is jedenfalls nicht portabel... Achso:
Scheint so.
$ sed --version | head -1 GNU sed version 3.02
eddie:/usr/src # sed -V GNU sed version 3.02.80 -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
Hallo, On Fri, 16 May 2003, Manfred Tremmel wrote:
Am Freitag, 16. Mai 2003 00:03 schrieb David Haller:
Hm. Is mein sed zu alt? Vielleicht. [..] $ sed --version | head -1 GNU sed version 3.02 eddie:/usr/src # sed -V GNU sed version 3.02.80
Hm. Ist ja eigentlich fast die gleiche Version -- allerdings: $ sed --version | grep opyr Copyright (C) 1998 Free Software Foundation, Inc. $ rpm -q --queryformat \ "%{name}-%{version} %{buildtime:date}\n" -f /usr/bin/sed base-99.8.7 Sat 07 Aug 1999 08:50:16 PM CEST Kannst du evtl. mal ins ChangeLog schauen/greppen, ob da was diesbezueglich drinsteht? Das waere fuer mich naemlich ein Feature, sed aktualisieren zu wollen ;) Ach ne, lass mal, hier faehrt irgendwo ein neueres sed noch auf der HD rum -- ich schau selber ;) -dnh -- 12. Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong. --- Eric S. Raymond, "The Cathedral and the Bazaar"
* David Haller schrieb am 17.Mai.2003:
On Fri, 16 May 2003, Manfred Tremmel wrote:
Am Freitag, 16. Mai 2003 00:03 schrieb David Haller:
Hm. Is mein sed zu alt? Vielleicht.
Ja.
$ sed --version | head -1 GNU sed version 3.02 eddie:/usr/src # sed -V GNU sed version 3.02.80
Hm. Ist ja eigentlich fast die gleiche Version -- allerdings:
$ sed --version | grep opyr Copyright (C) 1998 Free Software Foundation, Inc. $ rpm -q --queryformat \ "%{name}-%{version} %{buildtime:date}\n" -f /usr/bin/sed base-99.8.7 Sat 07 Aug 1999 08:50:16 PM CEST
Kannst du evtl. mal ins ChangeLog schauen/greppen, ob da was diesbezueglich drinsteht? Das waere fuer mich naemlich ein Feature, sed aktualisieren zu wollen ;) Ach ne, lass mal, hier faehrt irgendwo ein neueres sed noch auf der HD rum -- ich schau selber ;)
Ich habe hier sed-Version 3.02 sowohl bei SuSE als auch bei Debian,
bei beiden hat es nicht funktioniert. Da habe ich bei Debian neues
sed gezogen. Dort habe ich jetzt Version 4.0.7 und es funktioniert.
Ich habe folgenden Eintrag in der ChangeLog gefunden:
2001-03-21 Paolo Bonzini
Hallo, On Sat, 17 May 2003, Bernd Brodesser wrote:
* David Haller schrieb am 17.Mai.2003:
On Fri, 16 May 2003, Manfred Tremmel wrote:
Am Freitag, 16. Mai 2003 00:03 schrieb David Haller:
Hm. Is mein sed zu alt? Vielleicht.
Ja. [..] Ich habe hier sed-Version 3.02 sowohl bei SuSE als auch bei Debian, bei beiden hat es nicht funktioniert. Da habe ich bei Debian neues sed gezogen. Dort habe ich jetzt Version 4.0.7 und es funktioniert.
Ich habe folgenden Eintrag in der ChangeLog gefunden:
2001-03-21 Paolo Bonzini
* sed/compile.c (normalize_text): support \XXX in Perl mode, \oXXX in non-Perl mode.
Sun Apr 18 01:48:45 PDT 1999 Ken Pizzini
... * sed/compile.c(normalize_text): add new \dDDD decimal and \oOOO octal escapes.
Jep, mein sed ist aelter, der letzte Aenderung im ChangeLog ist vom Jul. 1998... Ich finde in den NEWS (ChangeLog is nicht installiert) von 3.02.80: ==== Sed 3.02.80 The s/// command now understands the following escapes (in both halves): [..] \oNNN a character with the octal value NNN \dNNN a character with the decimal value NNN \xNN a character with the hexadecimal value NN [..] Sed 3.02a [..] Sed 3.02 ==== Das waere jetzt also geklaert ;) -dnh -- "We apologise for the inconvenience" ("God's Final Message") --- Douglas Adams (P.S.: I think, I feel good about it, too...)
participants (6)
-
B.Brodesser@t-online.de
-
Christoph Maurer
-
David Haller
-
Koerner, Sebastian
-
Manfred Tremmel
-
Volker Kroll