Schrift
[thread]8423[/thread]

textdatei unix Zeilentrenner ^M entfernen



<< |< 1 2 >| >> 20 Einträge, 2 Seiten
Annka
 2006-10-17 16:03
#70819 #70819
User since
2006-07-18
43 Artikel
BenutzerIn
[default_avatar]
hallo,

weiß jemand wie man die zeilentrenner unter unixsystemen bei textdateien entfernt?

habe ein script unter windows geschrieben und bei der umstellung auf unix entstehen die zeilentrenner ...
sid burn
 2006-10-17 16:07
#70820 #70820
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Üblicherweise kannst du diese mit dem Befehl chomp() entfernen.

Wenn du auf einen Unix System Arbeitest und du möchtest Windows Zeilentrennzeichen entfernen, dann musst du vorher $/ auf \r\n setzen.

Am besten machst du das so.
Code: (dl )
$/ = "\015\012"


Danach entfernt chomp auch die Windows Zeichen.

Code: (dl )
chomp $string


Am besten aber die Oktalen Werte wie oben benutzen und nicht auf die Idee kommen $/ auf "\r\n" zu setzen, dass wäre falsch. (Okay im Falle das du auf einen Unix ähnlichen System Arbeitest würde das sogar Funktionieren)\n\n

<!--EDIT|sid burn|1161086988-->
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
renee
 2006-10-17 16:09
#70821 #70821
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Es gibt ein Skript, das sich dos2unix nennt. Das sollte automatisch dabei sein.

Einfach dos2unix -n skript.pl neuer_name.pl
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
steffenw
 2006-10-17 16:14
#70822 #70822
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
In einer Kommandozeile geschrieben:
Code: (dl )
perl -e 'my $filename = shift; $/ = (); open my $fh, q{<}, $filename or die $!; my $file = <$fh> or die $!; $file =~ s{\x0d}{}xmsg; close $fh;open $fh, q{>}, qq{$filename.unix} or die $!; print $fh $file or die $!; close $fh or die $!;' -- dein_filename

geht das so unter Windows und Unix gleichermaßen. Nur in Windows müssen die ' quotes durch " ersetzt werden.\n\n

<!--EDIT|steffenw|1161087429-->
$SIG{USER} = sub {love 'Perl' or die};
Annka
 2006-10-17 16:16
#70823 #70823
User since
2006-07-18
43 Artikel
BenutzerIn
[default_avatar]
frage: dos2unix ist nicht vorhanden ? downloaden einbinden und dann den befehl probieren?
Annka
 2006-10-17 16:22
#70824 #70824
User since
2006-07-18
43 Artikel
BenutzerIn
[default_avatar]
problem ist behoben :) renees tipp hat doch geklappt :cool:
renee
 2006-10-17 16:29
#70825 #70825
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wer es in einem Skript machen möchte, der sollte sich vielleicht auch CPAN:File::LocalizeNewlines anschauen...

Aber warum aufwändig ein Skript schreiben, wenn es die Tools schon gibt :p
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
steffenw
 2006-10-17 17:23
#70826 #70826
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
schön renee, nur werden immer mehr module nicht mehr für Windows geschrieben und getestet, wie das File::LocalizeNewlines eben auch. Siehe: http://ppm.activestate.com/BuildStatus/5.8-F.html
$SIG{USER} = sub {love 'Perl' or die};
renee
 2006-10-17 18:07
#70827 #70827
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ok, das wundert mich etwas, weil Adam auch Windows-Nutzer ist.

Und dass immer mehr Module nicht für Windows sein sollten, wage ich etwas zu bezweifeln... Woran willst Du das festmachen?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pq
 2006-10-17 19:13
#70828 #70828
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=steffenw,17.10.2006, 15:23]schön renee, nur werden immer mehr module nicht mehr für Windows geschrieben und getestet, wie das File::LocalizeNewlines eben auch. Siehe: http://ppm.activestate.com/BuildStatus/5.8-F.html[/quote]
woran siehst du dort, dass das modul nicht für windows ist?
ich habe noch nie durchgeblickt, warum da FAIL oder PASS steht.

z.B. die meldung:
Code: (dl )
1
2
failed building File-LocalizeNewlines prerequisite Class-Default
aborting build of File-LocalizeNewlines: failed prerequisites

findet man unter PASS und auch unter FAIL.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< |< 1 2 >| >> 20 Einträge, 2 Seiten



View all threads created 2006-10-17 16:03.