Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: one-line split file sequence checker

by jwkrahn (Abbot)
on Jan 22, 2008 at 21:09 UTC ( [id://663692]=note: print w/replies, xml ) Need Help??


in reply to one-line split file sequence checker

"tighter" sure, change  grep(s/^.+?([0-9]+)$/$1/, to  map(/.([0-9]+)$/, and change  `ls *[0-9]` to  <*[0-9]> and change  grep(s/$/\n/, to  map("$_\n",.

Replies are listed 'Best First'.
Re^2: one-line split file sequence checker
by kyle (Abbot) on Jan 22, 2008 at 21:55 UTC

    You can make map(/.([0-9]+)$/, into map(/.(\d+)$/, too.

      perl -e 'for $c (sort {$a<=>$b} map(/.(\d+)$/, <*[0-9]>)){ ++$n == $c || print map("$_\n", $n...$c-1) ; $n=$c }'

      Ah, that's getting closer to the line noise effect I was looking for, thanks ;=) Time to read up on that map command and why <> is globbing filenames in the current dir. I'm almost pleased to see there's no offered improvement to the basic idea. There's no way to get rid of that 'for' iterator, or the 'print'? -lane ? Any shorthand for sort {$a<=>$b}? Just wondering.

        If you're just golfing, you can throw away a few characters:

        perl -e 'for$c(sort{$a<=>$b}map/(\d+)$/,<*[0-9]>){++$n==$c||print map" +$_\n",$n..$c-1;$n=$c}'

        If you want to get rid of the sort, try an array:

        perl -le '@f=map/(\d+)$/,<*[0-9]>;@x[@f]=@f;for(1..$#x){$x[$_]||print} +'

        Note that if you have a file named '0', it will basically ignore it, but that was the original behavior too. This may eat more memory, but I doubt that will be an issue until you're working with millions of files.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://663692]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (4)
As of 2024-04-19 12:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found