Schrift
[thread]8560[/thread]

Mehrer Zeilen zu einer Zeile zusammenfügen: Zeilen in einer Datei zusammenfügen (Seite 2)

Leser: 1


<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten
topeg
 2006-12-08 00:59
#72359 #72359
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
@havi
Der code ist nicht von mir....
pq
 2006-12-08 11:37
#72360 #72360
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
[quote=havi,07.12.2006, 20:03]... nichts für ungut renee, aber dein Code funktioniert unter Windows nicht:
Code: (dl )
perl -pi -e 's!\r\n! !g' dokument.txt

wuerde funktionieren.[/quote]
nichts fuer ungut, havi, aber renees code funktioniert unter windows.
ich kann es wie immer nicht ausprobieren, aber:
unter windows ist \n der zeilenumbruch, und \r\n waere doppelt gemoppelt. ein \n unter windows stellt such nur unter linux z.b. als \r\n dar.

$/ steht z.B. unter windows per default auf \n. das waere ja echt
bloed, wenn man in windows immer $/ auf \r\n stellen muesste,
bevor man dateioperationen macht.

der code funktioniert *nicht*, wenn man eine datei mit windows-umbruechen
unter linux bearbeitet.\n\n

<!--EDIT|pq|1165570791-->
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
esskar
 2006-12-08 11:42
#72361 #72361
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
\n wird unter windows erst beim output zu \r\n
und auch nur dann, wenn nicht binmode\n\n

<!--EDIT|esskar|1165571065-->
pq
 2006-12-08 11:55
#72362 #72362
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
[quote=esskar,08.12.2006, 10:42]\n wird unter windows erst beim output zu \r\n
und auch nur dann, wenn nicht binmode[/quote]
und beim einlesen wird \r\n zu \n, oder?
wie sollte denn sonst der code
Code: (dl )
1
2
3
4
5
while (<$fh>) {
 chomp;
 # oder auch
 s!$/!!;
}

funktionieren?
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
topeg
 2006-12-08 12:10
#72363 #72363
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Allso wenn man auf nunmal sicher gehen will, kann man ja auch auch sowas machen:
Code: (dl )
tr/\r\n//d;
pq
 2006-12-08 12:14
#72364 #72364
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
also, perl -pe "s/\n//" datei.txt funktioniert unter windows. es kommt ein string ohne
newlines und carriage-returns heraus.
da hier 2 leute das gegenteil behaupten, habe ich es von
jemandem checken lassen. =)
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
dta
 2006-12-08 12:36
#72365 #72365
User since
2006-07-11
11 Artikel
BenutzerIn
[default_avatar]
perl -pe chomp
Duff
 2006-12-08 20:12
#72366 #72366
User since
2006-10-06
283 Artikel
BenutzerIn

user image
Wow, nochmals Danke für die vielen guten Antworten und die heiße Diskussion.
D'OH
Daniel
havi
 2006-12-08 21:06
#72367 #72367
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Code: (dl )
der code funktioniert *nicht*, wenn man eine datei mit windows-umbruechen unter linux bearbeitet. 


Absolut korrekt @pq - stimmt, sorry mein Gedankenfehler!\n\n

<!--EDIT|havi|1165605331-->
havi
 2006-12-08 21:08
#72368 #72368
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
[quote=Ronnie,07.12.2006, 20:12][quote=havi,07.12.2006, 20:03]... unter MAC ist es uebrigens \r[/quote]
Hallo Havi,

das stimmt nur für Mac OS 9 und älter. Das seit einigen Jahren aktuelle Mac OS X ist ein Unix und verhält sich auch so.

Gruß,
Ronnie[/quote]
Ich wusste es nur von frueher...
<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten



View all threads created 2006-12-07 15:35.