Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8560[/thread]

Mehrer Zeilen zu einer Zeile zusammenfügen: Zeilen in einer Datei zusammenfügen

Leser: 1


<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten
Duff
 2006-12-07 15:35
#72349 #72349
User since
2006-10-06
283 Artikel
BenutzerIn

user image
Hallo,

ich würde gerne aus einem Dokument, in dem viele Zeilen sind, diese in eine Zeile zusammenfassen.

Das ganze würde ich gerne in einem Einzeiler machen, den ich dann so in der shell absetzen kann.

Danke.
D'OH
Daniel
renee
 2006-12-07 15:40
#72350 #72350
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
perl -pi -e 's!\n! !g' dokument.txt


ersetzt die newlines durch leerzeichen...
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/
topeg
 2006-12-07 15:43
#72351 #72351
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Code: (dl )
perl -e 'print join('',chomp(@_=<STDIN>))' eigebddatei
\n\n

<!--EDIT|topeg|1165499104-->
Duff
 2006-12-07 15:58
#72352 #72352
User since
2006-10-06
283 Artikel
BenutzerIn

user image
Danke für die schnellen Antworten.
Bei der Variante von topeg bekomme ich immer folgende Fehlermeldung:
Code: (dl )
1
2
syntax error at -e line 1, near "join(,"
Execution of -e aborted due to compilation errors.


@renee: Wieso funktioniert das ganze bei dir? Ich habe in der Datei nämlich gar keine \n drinstehen.
D'OH
Daniel
topeg
 2006-12-07 16:08
#72353 #72353
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Code: (dl )
perl -e 'chomp(@_=<STDIN>); print join("",@_)' < eigebddatei

Man sollte es doch vorher noch testen. Wenn ich ' verwedne sollte ich es innerhalb nicht verwenden. :-)\n\n

<!--EDIT|topeg|1165521434-->
RalphFFM
 2006-12-07 16:08
#72354 #72354
User since
2006-11-16
258 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hajo ist ja logisch, weil perl denkt bei den ersten Gänsefüßchen sei der Ausdruck perl -e ... zuende. -> In der Mitte die einfachen Gänsefüßchen durch doppelte ersetzen.
renee
 2006-12-07 16:13
#72355 #72355
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@Duff: Du hast aber Zeilenumbrüche drin...
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/
havi
 2006-12-07 21:03
#72356 #72356
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
@topeg:

\n
stellt den Zeilenumbruch da, soviel dazu.

... 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.

Optimal waere es meiner Meinung nach so:
Code: (dl )
perl -pi -e 's!\r?\n! !g' dokument.txt


... unter MAC ist es uebrigens \r - diese regex koennte dann zB so aussehen:
Code: (dl )
perl -pi -e 's!(\r\n|\r|\n)! !g' dokument.txt


LG,
havi\n\n

<!--EDIT|havi|1165518358-->
Ronnie
 2006-12-07 21:12
#72357 #72357
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
[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
renee
 2006-12-07 22:52
#72358 #72358
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=havi,07.12.2006, 20:03]@topeg:

\n
stellt den Zeilenumbruch da, soviel dazu.

... 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.

Optimal waere es meiner Meinung nach so:
Code: (dl )
perl -pi -e 's!\r?\n! !g' dokument.txt


... unter MAC ist es uebrigens \r - diese regex koennte dann zB so aussehen:
Code: (dl )
perl -pi -e 's!(\r\n|\r|\n)! !g' dokument.txt


LG,
havi[/quote]
naja, etwas Eigenleistung soll ja auch erbracht werden. Außerdem sprach der OP von einer Shell, was man unter Windows eher selten hat...
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/
<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten



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