PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : von BASH nach KSH



Mehlwurm
21-10-2005, 08:03
mein probelm:
umformatieren von text


=...-TITLE ACT -REFD ATA -SENDER -FAC TY. -RECVR -FAC R -SEQNU 004.-ARCID DLH101 -ADEP EGKW.-SSRCODE C3607.-ARCTYP A320 - WKTRC .-COORDATA -P TID RENNE -TO 0630 -TFL F280.-ADES EDD F...................

das ist in einer zeile und nu will ich jeden "-" (Bindestrich) durch einen zeilenumbruch + bindestrich ersetzen ..
das klappt in der bash mittels

sed s/'-'/\\n-/g $datei

aber in der ksh leider nicht ...*wein

hab es auch mit dem awk ausprobiert (awk '{gsub(/-/,"\n-",$0);print;}' $datei)
aber der verkraftet es nicht, dass in einer zeile mehr als 199 felder sind


wie muss ich den sed anpassen? .. oder gibt es dazu noch einen awk-trick?

Deever
21-10-2005, 08:24
Hm? Warum denn die Singlequotes in deinem sed-Ausdruck? Vielleicht funktionierts ohne?

Gruß,
/dev

Mehlwurm
21-10-2005, 08:31
danke für deinen tipp, aber das hat nichts gebracht :(

`kk
21-10-2005, 11:56
Geht das..?



sed -e 's#-#\n-#g' in > out
Gruß
Kai

PS: Man muss nicht immer / zum Trennen nehmen.
Wie man sieht funktionieren auch andere Zeichen, dann ist
das mal etwas uebersichtlicher. ;)

PPS: Hab das eigentliche Problem erst jetzt kapiert, sollte
aber trotzdem funktionieren. :D

Mehlwurm
21-10-2005, 12:17
leider hilft es mir nicht ! die ausgabe ist immernoch ohne zeilenumbruch :(

roli
24-10-2005, 08:48
Muss es sed sein?
Für "ein zeichen" probleme verwende ich in der Regel tr.

funktioniert

tr - '\12'
bei dir?

Mehlwurm
24-10-2005, 12:55
danke für deinen tipp aber es will nicht .. in der bash bekomme ich es wie beschrieben mit sed und awk (mit dem problem bei 199 feldern) hin, aber in der kornshell (ksh) ...
und mittels tr klappt es bei mir weder in der bash noch in der ksh ;-)

roli
24-10-2005, 13:35
du must aber eine komische ksh haben ;-)
Oder zumindest spezielle Einstellungen...

Joghurt
24-10-2005, 14:24
Warum schreibst du die Befehle nicht in eine Skriptdatei und lässt diese mit bash ausführen?
#!/bin/bash

Mehlwurm
25-10-2005, 11:48
sorry für meine einstellungen, aber die habe ich mir nicht ausgesucht ..*

ich hab es in einem scritp drinnen stehen.
auf dem rechner ist keine bash installiert .. ich bekomme einfach nur ein ksh .. es ist ein hp rechner mit einem hp-ux ....
und aus siecherheitstechnischen gründen darf dort auch nichts nachinstalliert werden :-(

roli
25-10-2005, 11:56
sorry für meine einstellungen, aber die habe ich mir nicht ausgesucht ..*(
War ja auch nicht ganz so ernst gemeint.
Gibt es denn eine Fehlermeldung oder sonstwas? Aber du benutzt tr schon nicht direkt auf das file, oder?

Mehlwurm
25-10-2005, 12:35
mittels

cat datei | tr
hab ich es hinbekommen

*freufreu