• 28.04.2025, 08:02
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Zeilenumbrüche in Logdatei Unix - Windows

Donnerstag, 14. Juni 2007, 10:05

Hey Leute,

folgendes Problem:

Ich habe ein script geschrieben welches mir einen Bericht über die Systemauslastung eines Servers per email schickt. Der Bericht wird als Anhang an die Mail geschickt.

Wenn ich die Datei jetzt mit Word oder dem Texteditor öffne bekomme ich statt den Zeilenumbrücken diese schönen Kästchen.
Ich würde jetzt gerne wissen, wie ich es anstelle dass die Zeilenumbrüche auch im Word richtig angezeigt werden. Hier die Zeile um die es im speziellen geht:

echo `date` >> $log

Solaris10, bash

ps. bitte nicht über Sinn und Unsinn diskutieren warum das ganze mit Word geöffnet werden soll und nicht mit einem anderen Prog.
Da steht nix :-P

Re: Zeilenumbrüche in Logdatei Unix - Windows

Donnerstag, 14. Juni 2007, 10:46

ich machs trotzdem ;)
wenn du Word und den Texteditor nennst gehts vielleicht um die Standard-Winsoftware ... schonmal das WordPad ausprobiert?
Hab ich letztens in ähnlichem Zusammenhang als die bessere Alternative genannt bekommen ...

Re: Zeilenumbrüche in Logdatei Unix - Windows

Donnerstag, 14. Juni 2007, 11:14

Jop mit wordpad wird alles richtig angezeigt.

Nur ist hald gefordert, dass die Logdatei auch mit Word oder ähnlichem zu öffnen ist ;)
Da steht nix :-P

Re: Zeilenumbrüche in Logdatei Unix - Windows

Donnerstag, 14. Juni 2007, 11:20

Zitat von »Freakmaster«

Jop mit wordpad wird alles richtig angezeigt.

Nur ist hald gefordert, dass die Logdatei auch mit Word oder ähnlichem zu öffnen ist ;)


Öffne die Datei erst mit Notepad++ oder e (mein Favorit) öffnen und die Zeilenumbrüche in Windowszeilenumbrüche ändern (geht in beiden mit einem Klick).

Es müsste aber auch möglich sein, Word irgendwie Unix-Zeilenumbrüche beizubringen.

EDIT: Und wenn Word das wirklich nicht kann und der extra Editor dir zu aufwendig ist, dann musst du dir halt ein Script basteln, dass die Zeilenumbrüche erweitert.

Re: Zeilenumbrüche in Logdatei Unix - Windows

Donnerstag, 14. Juni 2007, 11:35

Mein Problem ist nicht, dass es mir zu aufwändig ist einen extra Editor zu starten (ich benutze übrigens am liebsten notepad++) sondern es geht darum dass die Datei unter Unix so geschrieben werden muss, dass sie im Word richtig angezeigt wird.
Das ist Bestandteil der Aufgabe die ich gekriegt habe!

Es muss dafür ja irgendeine Möglichkeit geben. Im Rest des Scriptes habe ich das ja auch hinbekommen allerdings wurde da awk eingesetzt.
Da steht nix :-P

Re: Zeilenumbrüche in Logdatei Unix - Windows

Donnerstag, 14. Juni 2007, 11:41

Wie oft wird denn die Datei in Word geöffnet? Wie aktuell müssen die Daten in dem Log sein?

Sonst könnte man ja auch per täglichem Cronjob (je nachdem wie frequentiert die Datei ist auch stündlich) per Script die Zeilenumbrüche umschreiben.

Re: Zeilenumbrüche in Logdatei Unix - Windows

Donnerstag, 14. Juni 2007, 12:02

Kleiner Exkurs in Zeilenendenkunde:
Unix: \n
Mac OS (!X): \r
Windows: \r\n

Re: Zeilenumbrüche in Logdatei Unix - Windows

Donnerstag, 14. Juni 2007, 14:57

Die Logdateien werden vorerst alle zwei stunden rausgeschickt. Das ganze ist ja nur eine Spielerei um mal die scripterei kennenzulernen - allerdings sind die Vorgaben hald klar gegeben und die beinhalten hald leider die Anforderung, dass man die Logs mit Word lesen kann ;)

Ich habe es jetzt nach weiterem rumprobieren und nachlesen folgendes herausgefunden:
In der bash funktioniert "\r" nicht!! Ich benutze jetzt einfach die ksh und gut is.
Da steht nix :-P

Re: Zeilenumbrüche in Logdatei Unix - Windows

Donnerstag, 14. Juni 2007, 15:17

Wenn die Logs rausgeschickt werden, dann ist es ja auch kein Problem da einmal ein Script drüber zu schicken das die Umbrüche ersetzt.

Re: Zeilenumbrüche in Logdatei Unix - Windows

Donnerstag, 14. Juni 2007, 15:21

Was heißt bitte "funktioniert nicht"? \r ist Teil der ASCII-Zeichenmenge!

Achso, `dos2unix` und `unix2dos` sind übrigens Kommandozeilentools zur Konvertierung zwischen den Zeilenenden.

Re: Zeilenumbrüche in Logdatei Unix - Windows

Donnerstag, 14. Juni 2007, 15:22

@Eike: Ich glaub du missverstehst mich etwas.

Mein Problem ist doch, dass ich nicht weiß durch WAS ich die Zeilenumbrüche ersetzen soll bzw. dass die in der man-page stehende Lösung nicht funktioniert!!
In der man steht, dass man mit "echo \r" einen Zeilenumbruch hinbekommt der unter Windows auch lesbar ist - nur leider geht genau das in der bash nicht!

Die Logs werden übrigens im gleichen script verschickt in dem sie angelegt werden.

@Yogi: "funktioniert nicht" heißt, dass statt einem Zeilenumbruch das \r in der Logdatei steht!

ksh:

Thu Jun 14 13:23:14 CEST 2007  

Systemauslastung: 52 %



bash:

Thu Jun 14 13:23:29 CEST 2007  \r  \r Systemauslastung: 52 %
Da steht nix :-P

Re: Zeilenumbrüche in Logdatei Unix - Windows

Donnerstag, 14. Juni 2007, 16:14

`echo -e`

Damit Word Zeilenumbrüche anzeigt, müssen diese "\r\n" sein.

Re: Zeilenumbrüche in Logdatei Unix - Windows

Donnerstag, 14. Juni 2007, 16:16

Für Windows brauchst du \r\n. Einfacher ist da allerdings unix2dos zu benutzen. Danke Yogi, die beiden kannte ich auch noch nicht :)

Re: Zeilenumbrüche in Logdatei Unix - Windows

Donnerstag, 14. Juni 2007, 16:47

@Eike: Weder

echo `date` "\r\n" > $log

noch

echo `date` \r\n > $log (wenn das funzen würde würds mich auch wundern...)

funktionieren in der bash.

@Yogi

Danke! mit
echo -e `date` "\n" > $log

wirds richtig im Word angezeigt bei der bash!
Da steht nix :-P