Schrift
[thread]6695[/thread]

Die längste Zeile einer Datei: angeregt durch ein weblog



<< >> 3 Einträge, 1 Seite
Ronnie
 2005-02-08 21:43
#51630 #51630
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Ich in auf http://www.scsy.de/~mas/archiv/000501.html auf eine nette Methode gestossen sich die längste Zeile einer Datei zu suchen. Ich habe mich gefragt wie ich das in Perl machen würde:

1. Entwurf:
Code: (dl )
1
2
3
4
5
6
7
8
9
#!/usr/bin/perl

use strict;
use warnings;

my $lline = '';
while (<>) { $lline = $_ if (length($_) > length($lline)) }
print $lline;
exit;

Ich wollte das noch etwas eindampfen, daraus wurde der ...

2. Entwurf:
Code: (dl )
perl -e 'print pop @{[map {$l = $_ if (length($l) < length($_)); $l} (<>)]};' file

Das gefällt mir schon ganz gut, aber ich glaube da ist noch Luft drin. Hat jemand einen Vorschlag?
sri
 2005-02-08 22:33
#51631 #51631
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
Code: (dl )
perl -e 'do{length>length$@&&($@=$_)}for<>;print$@' file
Dubu
 2005-02-10 23:32
#51632 #51632
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Code: (dl )
perl -e 'print+(sort{$b<=>$a}map{length}<>)[0]'  file

Sehr ineffizient (weil der ganze Text im Speicher sortiert wird), aber kuerzer. 8)

Edit: Oder:
Code: (dl )
perl -lpe '$_=(sort{$b<=>$a}map{length}<>)[0]' < foo
\n\n

<!--EDIT|Dubu|1108071296-->
<< >> 3 Einträge, 1 Seite



View all threads created 2005-02-08 21:43.