\n funktioniert bei sed unter HP-UX nicht [gelöst]

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

\n funktioniert bei sed unter HP-UX nicht [gelöst]

Beitrag von Duff » 24.07.2007 09:56:39

Hallo,

ich möchte folgendes, was ich unter einem "normalen" Linux-OS machen kann, auch unter HP-UX realisieren.

Code: Alles auswählen

daniel> var=`echo "abc" "def"`
daniel> echo $var
abc def
daniel> echo $var|sed -e 's/ /\n/g'
abc
def
Unter HP-UX geschieht aber folgendes:

Code: Alles auswählen

HP-UX>echo $var|sed -e 's/ /\n/g'
abcndef
Jemand ne Idee, wie man das Problem hier lösen kann???
Zuletzt geändert von Duff am 24.07.2007 13:15:04, insgesamt 1-mal geändert.
Oh, yeah!

Benutzeravatar
becke
Beiträge: 365
Registriert: 29.11.2004 11:55:04
Wohnort: Ostwestfalen

Beitrag von becke » 24.07.2007 10:54:20

Das liegt an der sed-Version, unter linux ist es "gsed", hier auf der SUN geht's auch nicht.
Ein Ärgernis...

Konsolenlösung:

Code: Alles auswählen

$ echo $var |sed -e 's/ /\[HIER ENTER DRÜCKEN]
becke2@BFE-UX01 > /g'[HIER ENTER DRÜCKEN]
abc
def
Scriptlösung:

Code: Alles auswählen

#!/bin/ksh
var=`echo "abc" "def"`
echo $var |sed -e 's/ /\
/g'
Gruß,
Becke

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 24.07.2007 12:15:12

Danke. Werde es mal so probieren.

Habe mich aber für diese Variante in meinem Shell-Skript entschieden :wink:

Code: Alles auswählen

perl -ne 's/^( |\/)+\s+/\n/g; print;'

...naja, ein fast Shell-Skript ;-)
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: \n funktioniert bei sed unter HP-UX nicht [gelöst]

Beitrag von Duff » 04.03.2009 15:19:20

Mmh...ich habe nun eine Datei, die aus einer Zeile besteht und in der über 5000 Character sind. Nun will ich nach jedem Leerzeichen einen Zeilenumbruch/Newline-Zeichen einfügen.
Das Beispiel von becke funktioniert hier unter HP-UX bei einer Variablen auch, bei dem File mit 5000 Character aber nicht. Bekomme aber auch keine Fehlermeldung.

Ist die Zeile vielleicht einfach zu lang?
Kann die Datei im vi nicht öffnen, da immer kommt line too long.
Oh, yeah!

Benutzeravatar
habakug
Moderator
Beiträge: 4314
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: \n funktioniert bei sed unter HP-UX nicht [gelöst]

Beitrag von habakug » 04.03.2009 15:29:00

Hallo!
"Line Too Long" means there is a line with 1024 or more characters
on it, and vi (like many UNIX utilities) breaks at 1024 characters.
If you get "Line Too Long", you can't edit the file with vi.
Gruß, habakug

http://world.std.com/help/cmd/vi/vi-intro.shtml
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: \n funktioniert bei sed unter HP-UX nicht [gelöst]

Beitrag von Duff » 04.03.2009 15:58:53

Ja, ja, aber trifft dies dann auch auf sed zu?
Oh, yeah!

Antworten