Re: sed-Frage (",0@|" durch ",1@|" ersetzen)
Joachim Kieferle wrote: [...]
2. Da ich wichtige Dinge lieber von Linux aus mache, soll unser "richtiger" Server (Linux) die Datei " ApprovedItems.txt" editieren und dort den String ",0@|" durch ",1@|" ersetzen. In der Datei stehen dann z.B. folgende Zeilen: ++++++++++++ snip ++++++++++ ÿþcom_microsoft.328940_xp_rtm_winse_51283_critical,1@|0@|0@|20 04-07-15T18:56:3 com_microsoft.q838358_xp_sp2_ehome,1@|0@|0@|2004-07-15T18:56:39 com_microsoft.q900036_vs_net_es_5520,1@|0@|0@|2004-07-15T18:56:39 com_microsoft.q900036_vs_net_es_sdk_5521,1@|0@|0@|2004-07-15T18:56:39 com_microsoft.sasser_a_b_cln,1@|0@|0@|2004-07-15T18:56:39 ++++++++++++ snip ++++++++++ 3. ein "sed 's/,0@|/,1@|/g' ApprovedItems.txt > irgendeine Datei" ändert den String nicht.
Wie soll das denn auch gehen? Dein Suchstring ',0@|' taucht ja gar nicht auf!!! Ich finde dort ",1@|0@|0@"; aber nirgendwo die Folge ',0@'. Der Fehler sitzt vor dem Bildschirm. Andreas
Kyek, Andreas, VF-DE wrote:
Joachim Kieferle wrote: [...]
2. Da ich wichtige Dinge lieber von Linux aus mache, soll unser "richtiger" Server (Linux) die Datei " ApprovedItems.txt" editieren und dort den String ",0@|" durch ",1@|" ersetzen. In der Datei stehen dann z.B. folgende Zeilen: ++++++++++++ snip ++++++++++ ÿþcom_microsoft.328940_xp_rtm_winse_51283_critical,1@|0@|0@|20 04-07-15T18:56:3 com_microsoft.q838358_xp_sp2_ehome,1@|0@|0@|2004-07-15T18:56:39 com_microsoft.q900036_vs_net_es_5520,1@|0@|0@|2004-07-15T18:56:39 com_microsoft.q900036_vs_net_es_sdk_5521,1@|0@|0@|2004-07-15T18:56:39 com_microsoft.sasser_a_b_cln,1@|0@|0@|2004-07-15T18:56:39 ++++++++++++ snip ++++++++++ 3. ein "sed 's/,0@|/,1@|/g' ApprovedItems.txt > irgendeine Datei" ändert den String nicht.
Wie soll das denn auch gehen? Dein Suchstring ',0@|' taucht ja gar nicht auf!!!
Ich finde dort ",1@|0@|0@"; aber nirgendwo die Folge ',0@'.
Der Fehler sitzt vor dem Bildschirm.
Hallo Andreas, scheint _nicht_ mein Erfolgsthread zu sein. Bei den obigen Zeilen habe ich schon das ,0@| händisch durch ,1@| ersetzt. Der "Mustercode" sieht also eigentlich so aus: ++++++++ nächster Versuch +++++++++ ÿþcom_microsoft.328940_xp_rtm_winse_51283_critical,0@|0@|0@|20 04-07-15T18:56:3 com_microsoft.q838358_xp_sp2_ehome,0@|0@|0@|2004-07-15T18:56:39 com_microsoft.q900036_vs_net_es_5520,0@|0@|0@|2004-07-15T18:56:39 com_microsoft.q900036_vs_net_es_sdk_5521,0@|0@|0@|2004-07-15T18:56:39 com_microsoft.sasser_a_b_cln,0@|0@|0@|2004-07-15T18:56:39 ++++++++ /nächster Versuch +++++++++ ABER Es scheint kein "sed-Problem" zu sein, sondern ein Problem mit dem Dateiformat. Denn ein "cat -v ApprovedItems.txt" bringt folgendes Ergebnis: M-^?M-~c^@o^@m^@_^@m^@i^@c^@r^@o^@s^@o^@f^@t^@.^@3^@2^@8^@9^@4^@0^@_^@x^@p^@_^@r ^@t^@m^@_^@w^@i^@n^@s^@e^@_^@5^@1^@2^@8^@3^@_^@c^@r^@i^@t^@i^@c^@a^@l^@,^@1^@@^@ |^@0^@@^@|^@0^@@^@|^@2^@0^@0^@4^@-^@0^@7^@-^@1^@5^@T^@1^@8^@:^@5^@6^@:^@3^@9^@ ^@c^@o^@m^@_^@m^@i^@c^@r^@o^@s^@o^@f^@t^@.^@3^@2^@9^@1^@7^@0^@ ^@s^@e^@c^@u^@r^@ i^@t^@y^@ ^@u^@p^@d^@a^@t^@e^@ ^@w^@i^@n^@d^@o^@w^@s^@ ^@2^@0^@0^@0^@,^@1^@@^@|^ @0^@@^@|^@0^@@^@|^@2^@0^@0.......... Das Ersetzen von ",0@|" funktioniert einfach nicht mit sed, auch wenn ich ^@,^@0^@@^@| als zu ersetzenden String angebe. Wenn ich die Datei mit "cat -v ...." pipe und dann ersetze, nimmt der SUS-Server sie nicht mehr an. Falls jemand das mal testen möchte / kann, habe ich die Datei auf unseren Server gelegt: http://www.architektur.fh-wiesbaden.de/suse/ApprovedItems.txt.gz. Schon mal vielen Dank für Eure Hilfe, Joachim
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 ^@ ist wahrscheinlich 1 Byte, nicht 2, und zwar eines, wo alle Bits 0 sind. Sowas könnte helfen, besonders der Perl Teil: (echo -en ',\000';echo -e '1\000@\000|'a;echo -en ',\000';echo -e '1\000@\000|'b) | perl -pe 's/,[\0]1[\0]@/,\0002\000@/'|cat -v ,^@2^@@^@|a ,^@2^@@^@|b Torsten On Thursday 22 July 2004 10:47, Joachim Kieferle wrote:
++++++++ /nächster Versuch +++++++++
ABER
Es scheint kein "sed-Problem" zu sein, sondern ein Problem mit dem Dateiformat. Denn ein "cat -v ApprovedItems.txt" bringt folgendes Ergebnis:
M-^?M-~c^@o^@m^@_^@m^@i^@c^@r^@o^@s^@o^@f^@t^@.^@3^@2^@8^@9^@4^@0^@_^@x^@p^ @_^@r ^@t^@m^@_^@w^@i^@n^@s^@e^@_^@5^@1^@2^@8^@3^@_^@c^@r^@i^@t^@i^@c^@a^@l^@,^@1 ^@@^@
|^@0^@@^@|^@0^@@^@|^@2^@0^@0^@4^@-^@0^@7^@-^@1^@5^@T^@1^@8^@:^@5^@6^@:^@3^@ |9^@
^@c^@o^@m^@_^@m^@i^@c^@r^@o^@s^@o^@f^@t^@.^@3^@2^@9^@1^@7^@0^@ ^@s^@e^@c^@u^@r^@ i^@t^@y^@ ^@u^@p^@d^@a^@t^@e^@ ^@w^@i^@n^@d^@o^@w^@s^@ ^@2^@0^@0^@0^@,^@1^@@^@|^ @0^@@^@|^@0^@@^@|^@2^@0^@0..........
Das Ersetzen von ",0@|" funktioniert einfach nicht mit sed, auch wenn ich ^@,^@0^@@^@| als zu ersetzenden String angebe.
Wenn ich die Datei mit "cat -v ...." pipe und dann ersetze, nimmt der SUS-Server sie nicht mehr an.
Falls jemand das mal testen möchte / kann, habe ich die Datei auf unseren Server gelegt: http://www.architektur.fh-wiesbaden.de/suse/ApprovedItems.txt.gz.
Schon mal vielen Dank für Eure Hilfe,
Joachim -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFA/4X4wicyCTir8T4RAoo1AKDB2ZnplSTCQV9T8kfs+8idp03wOACfRGik MfyiSZrKmfqJ5kpbHiGz1jE= =0CzL -----END PGP SIGNATURE-----
participants (3)
-
Joachim Kieferle
-
Kyek, Andreas, VF-DE
-
Torsten Foertsch