view release on metacpan or search on metacpan
scripts/backcolor view on Meta::CPAN
while ( <> ) {
my @F = do { chomp ; split /\t/o, $_ , -1 } ;
for ( @F ) {
if ( looks_like_number ( $_ ) ) {
my $n = $o{s} ? sqrt ( $_ ) : $_ ;
my $d = max 0, min 5, int $n / $o{d} ;
my $c = "on_rgb00$d" ;
$_ = color ($c) . $_ . color ('reset') ;
}
}
say join "\t", @F ;
}
=encoding utf8
=head1
$0
TSVãã¡ã¤ã«ã«ããã¦ãæ°å¤ã®ã»ã«ã«å¯¾ãã¦èæ¯ã«è²ãä»ããã
scripts/chars2code view on Meta::CPAN
exit 0 ;
# 1æåãå¶å¾¡æåã«ã¤ãã¦ã¯ã¨ã¹ã±ã¼ãæåãä»ããæ§ãªå½¢ã«ãããããç¨®ã®æåã®æ£è¦åããã
sub norChar($){
state $x = \{ 0,'\0',7,'\a',8,'\b',9,'\t',10,'\n',11,'\v',12,'\f',13,'\r',27,'\e'} ;
return $$x->{ ord $_[0] } // $_[0] ;
}
sub LinePreserve {
say CYAN UNDERLINE +( $o{':'} ? 'lin#:' : '' ) . '#char', DARK '(#bytes)' , RESET UNDERLINE "\tchar ", DARK "u+code .." ;
while (<>) {
my $str = decode ( $_ ) ;
print CYAN +($o{':'}?($.+$base-1).":":''), length $str , DARK '(' , length $_ , ')' , RESET "\t" ;
for ( split //, $str , 0 ) {
my @out = ( BOLD sprintf ( '%s' , norChar $_ ) , RESET DARK sprintf ( " $h%02x " , ord $_ ) ) ;
print @out ;
}
say '' ;
}
}
# åºåããåè¡ã¯ãå
¥åã®åæåã«ç¸å½ããã¦ãããåä½
sub OneLineOneChar {
my ($posC,$posL) = ($base) x2 ; #æåã®å
é ããã®ä½ç½®ã è¡çªå·
* codify = $o{u} ? sub { sprintf 'u+%04x' , ord $_[0] } : sub { sprintf '0x%s', unpack 'H12', encode($_) } ;
for( ; <> ; $posL ++ ){
my $posC0 = $posC ;
for ( @_ = split //, decode($_), 0 ; defined($_=shift) ; $posC++ ) {
#my @out = ( sprintf ( "$h%04x" , ord encode($_) ) , sprintf ('[%s]' , norChar $_ ) ) ;
#my @out = ( sprintf ( "$h%s" , (unpack 'h12' , encode($_) ) ) , sprintf ('[%s]' , norChar $_ ) ) ;
my @out = ( &codify ($_) , sprintf ('[%s]' , norChar $_ ) ) ;
#unshift @out , sprintf ("$posC:$posL-$posCL(%s)", encode($_) ) if $o{':'} ;
unshift @out , sprintf "%d:%d-%d" , $posC, $posL, $posC - $posC0 + $base if $o{':'} ;
say join "\t" , @out ;
}
#$posL ++ ;
}
say STDERR CYAN ITALIC "Lines: " , $. , RESET '' ;
}
# åºç¾ããæåã®éè¨è¡¨
sub CountChars {
my %chars ; # åæåã®é »åº¦ãæ ¼ç´
my %f0l ; # åæåã®æåã®åºç¾ã®è¡çªå·
my %f1l ; # åæåã®æå¾ã®åºç¾ã®è¡çªå·
my $line = 0 ; # å
¨ä½ã®è¡æ°
while( <> ) {
for ( split // , decode ( $_ ) , 0 ) {
$chars{ $_ } ++ ;
$f0l { $_ } //= $line ;
$f1l { $_ } = $line ;
}
$line ++ ;
}
my @out = ( "freq", "code_point", "char" ) ;
push @out , "linum_first" , "linum_last" if $o{':'} ;
say UNDERLINE join "\t" , @out ;
for( sort {$chars{$b} <=> $chars{$a} } keys %chars ) {
my @out = ( $chars{ $_ } , sprintf( "U+%02X" ,ord $_) , sprintf ('[%s]' , norChar $_ ) ) ;
push @out , $f0l{$_} + $base , $f1l{$_} + $base if $o{':'} ;
say join "\t" , @out ;
}
say STDERR CYAN ITALIC "Lines: " , $line , RESET '' ;
}
sub VERSION_MESSAGE {}
sub HELP_MESSAGE { $0 =~ s|.*/|| ; while(<DATA>){s/\$0/$0/g;print $_ if s/^=head1// .. s/^=cut// } exit 0 }
no utf8 ;
__END__
=encoding utf8
scripts/colchop view on Meta::CPAN
use List::Util qw [ any ] ;
eval 'use Text::VisualWidth::UTF8 qw[trim width]; 1' or die 'Be Text::VisualWidth::UTF8 installed.' if $o{v} ;
* trim = * Text::VisualWidth::UTF8::trim if $o{v} ; # åã«è¦åãåé¿ããããã«ã次è¡ä»¥å¤ã«ãã®è¡ãæ¿å
¥ã
* trim = $o{v} ? * Text::VisualWidth::UTF8::trim : sub { substr ( $_[0], 0 , $_[1] ) } ;
$| = 1 if $o{'!'} ; # ãªã¼ããã©ãã·ã¥ã®è¨å®ã<- -- å¿
è¦ã?
$o{h} //= 0 ; # å·¦ããä½åã¯æãå ããªãããæ´ããã
# åºåããæååã®é·ãã®æå¤§å¤ã¨æãè¿ãæ°ã®æå¤§å¤
my ($tlen, $tmax) = do { ($o{g}//='') =~ m/(\d*)\D?(\d*)/ ; ( $1 || 6 , $2 // 2 || "Inf") } ;
#say STDERR $tlen,' ', $tmax;
my $existNext = $o{'.'} // '.' ; # ã¾ã表示ãè¶³ããªãæã«ãã»ã«æ«ã«æ¿å
¥ããæåå
my $iosep = $o{'/'} // "\t" ; # å
¥åºåã®åºåãæå
binmode STDIN, ":encoding(utf8)" if ! $o{w} && $o{u} ; # binmode ã®æå®ã¯ã substr颿°ã«å½±é¿ããã
binmode STDIN, ":encoding(cp932)" if $o{w} ; # <-- - SJIS <<? "cp932" çµµæåãèããã
binmode STDOUT,":encoding(utf8)" if $o{u} || $o{w} ; #$/ = "\r\n" if $o{W} ;
& main ;
exit ;
sub aLinOut ( @ ) {
my @cells ;
for ( 1 .. $#_ ) { # åãã¹ã®æååã«ã¤ãã¦.. ( $_ ã¯1å§ã¾ãã§å·¦ããä½çªç®ãã表ã )
push @cells , undef and next if ! defined $_[$_] ; # æªå®ç¾©ãªãæªå®ç¾©ã¨ãã¦
my $str = $_ <= $o{h} ? $_[$_] : trim ( $_[$_] , $tlen ) ; # -h ã§å·¦ããããã¤ãã®åã¯ä¿è·ããæå®ãããã°ããã®ããã«ã㦠..
$_[$_] =~ s/^\Q$str\E// ;
$_[$_] = undef if $_[$_] =~ m/^$/ ;
push @cells , $str . ( defined $_[$_] ? $existNext : '' ) ;
}
unshift @cells , "$_[0]" if defined $_[0] ;
say join $iosep , map { $_ // '' } @cells ;
}
sub main ( ) {
while ( <> ) {
chomp ;
my $lc = "$.:" if $o{':'} ; # -: æå®ã§ãè¡çªå·ã1åã ã表示 LineCount
my @F = split /$iosep/o , $_ , -1 ;
#for ( my $t=0 ; ++$t <= $tmax ; ) { aLinOut ($lc, @F) ; $lc = '' ; last if ! any { defined $_ } @F }
for ( my $t=0 ; ++$t <= $tmax ; ) { aLinOut $lc, @F ; last if ! any { defined $_ } @F }
}
scripts/collen view on Meta::CPAN
#!/usr/bin/perl
use 5.014 ; use warnings ; # 5.001ã ã£ã
use feature qw[ say ] ;
use Time::HiRes qw [ gettimeofday tv_interval ] ;
my ${ dt_start } = [ gettimeofday ] ;
use Term::ANSIColor qw[ :constants ] ; $Term::ANSIColor::AUTORESET = 1 ;
END{ $0 =~ s/.*\///;say STDERR DARK BOLD ITALIC YELLOW sprintf "\t--- %0.6f sec calculation ($0)." , tv_interval ${ dt_start } } ;
use Getopt::Std ; getopts '1cC:f:i:lrs:uv=!^*:@' , \my%o ; # 5.014 ã§ä½åº¦ãå®è¡æ¸ã¿
use Encode qw[ decode_utf8 encode_utf8 ] ;
eval 'use Text::VisualWidth::UTF8 qw[ width ] ; 1 ' or die 'Installing Text::VisualWidth::UTF8 is necessary.' if $o{v} ;
use List::MoreUtils qw[ firstidx lastidx ] ;
no warnings ;
* charlen = $o{v} ? * Text::VisualWidth::UTF8::width : sub { length $_[0] } ;
use warnings ;
sub mainproc ; # ã¡ã¤ã³ã®å¦ç
$| = 1 if $o{'!'} ; # ãªã¼ããã©ãã·ã¥ã®è¨å®
scripts/collen view on Meta::CPAN
while ( <> ) {
& preProcN ; # æ¹è¡æåã®å¦ç
& preProcU ; # UTF8ã«é¢ããå¦ç
#& sptr ;
#& preProcS ; # ç©ºç½æåã«ã¤ãã¦ã®å¦ç
@_ = & mainTreat ;
& colcnt ; # æ¡ä»¶ã«ãã£ãåã®æ°ãæ°ãããããªå¦ç -cãæå®ããã¦ããå ´åã«ã
& incFNa ; #ãã¡ã¤ã«åãæ«å°¾ã«ä»å
& fmtwdt ;
& incOrg ; # å
¥åããæååãæ«å°¾ã«ä»å
say join $o , @_ ;
say "^\t$ARGV" if eof && $o{'^'} ;
#do { $| = 1 ; print '' ; $|= 0 } if $. % $o{'*'} == 1 ;
}
} ;
## ãã«ãã®æ±ã
sub VERSION_MESSAGE {}
sub HELP_MESSAGE {
use FindBin qw[ $Script ] ;
$ARGV[1] //= '' ;
scripts/colpairs view on Meta::CPAN
sub showing1 ( ) {
my $cols = @{ $pf } ;
@heads = ( 1 .. $cols ) unless @heads ; #defined $cols
my @diag = map { scalar keys %{ $pf -> [$_][$_]}} 0 .. $cols -1 ;
# åºå表ã®è¡¨é
my @out = ( (BOLD 'pairs') , map { UNDERLINE $_ } 1 .. $cols ) ;
push @out , UNDERLINE YELLOW 'col_' . ($o{'='} ? 'name' : 'num') ;
push @out , UNDERLINE('minstr') , UNDERLINE('maxstr') if 0 ne ($o{v}//'') ;
say join "\t" , @out ;
# åºå表ã®åè¡
my $cell ; # $cell -> [] []
for my $i ( 0 .. $cols - 1 ) {
my @out = () ;
# 表å´
push @out , ($i+1).':' ; #. color('reset') ; # åçªå·
# å³ä¸ã®é¨å
scripts/colpairs view on Meta::CPAN
sub showing2 ( ) {
my $cols = @{ $pf } ;
@heads = ( 1 .. $cols ) unless @heads ; #defined $cols
my @diag = map { scalar keys %{ $pf -> [$_][$_]}} 0 .. $cols -1 ;
# åºå表ã®è¡¨é
my @out = ( (BOLD 'freq').'(min-mid-max)' , map { UNDERLINE $_ } 1 .. $cols ) ;
push @out , UNDERLINE YELLOW 'col_' . ($o{'='} ? 'name' : 'num') ;
push @out , UNDERLINE('q_value') if 0.9 < ($o{v}//'1') ;
say join "\t" , @out ;
# åºå表ã®åè¡
my $cell ; # $cell -> [] []
for my $i ( 0 .. $cols - 1 ) {
my @out = () ;
push @out , ($i+1) . ':' ;
# å·¦ä¸
for my $j ( 0 .. $i - 1 ) {
my $val = do { my $t = pickN 1, ( qval $pf -> [$j][$i] ) ; $t =~ s/\t/|/r } ;
scripts/colpairs view on Meta::CPAN
sub showing3 ( ) {
my $cols = @{ $pf } ;
@heads = ( 1 .. $cols ) unless @heads ; #defined $cols
my @diag = map { scalar keys %{ $pf -> [$_][$_]}} 0 .. $cols -1 ;
# åºå表ã®è¡¨é
my @out = ( ( BOLD 'undec' ) , map { UNDERLINE $_ } 1 .. $cols ) ;
push @out , UNDERLINE YELLOW 'col_' . ($o{'='} ? 'name' : 'num') ;
push @out , UNDERLINE('value_not_determining_other_column_value') if 0.9 < ($o{v}//'1') ;
say join "\t" , @out ;
# åºå表ã®åè¡
my $cell ; # $cell -> [] []
for my $i ( 0 .. $cols - 1 ) {
my @out = () ;
push @out , ($i+1) . ':' ;
# å·¦ä¸
my @o2 ;
for my $j ( 0 .. $cols - 1 ) {
scripts/colpairs view on Meta::CPAN
my $posj ; # ã©ãã§æå°å¤ã¨ãªã£ãã®ã
do { $o2[$_] == $tmp and $o2[$_] = BOLD $o2[$_] and $posj //= $_ } for 0 .. $#o2 ;
push @out , @o2 ;
push @out , YELLOW $heads [$i] ; # ååã¾ãã¯åçªå·ãæ¿å
¥
my @o3 = sort { keys %{$pf->[$i][$posj]{$b}} <=> keys %{$pf->[$i][$posj]{$a}} || $a cmp $b } @{ $pfijv->[$i][$posj] } ;
$_ = $_ . FAINT '(' . (keys $pf->[$i][$posj]{$_} ) .')' for @o3 ;
push @out , pickN $o{m}, @o3 ; # @{ $pfijv->[$i][$posj] } ;
say join "\t" , @out ;
next ;
# 対è§ç·ã®é¨å
# push @out, color('bright_green') . (scalar keys %{$pf->[$i][$i]}) . color('reset') ;
push @out, 0 ;
# å³ä¸
for my $j ( $i+1 .. $cols -1 ) {
my $val = nonDeterminability ( $i , $j ) ;
push @out , $val ;
}
push @out , YELLOW $heads [$i] ;
say join "\t" , @out ; next ;
}
}
sub showing4 ( ) {
my $cols = @{ $tf } ;
@heads = ( 1 .. $cols ) unless @heads ; #defined $cols
my @diag = map { scalar keys %{ $tf -> [$_][$_][$_]}} 0 .. $cols -1 ;
# åºå表ã®è¡¨é
scripts/colsummary view on Meta::CPAN
sub d3 ($) { $_[0] =~ s/(?<=\d)(?=(\d\d\d)+($|\D))/,/gr } ; # æ°ã3æ¡åºåãã«å¤æããã
#sub hhmmss () { sprintf '%02d:%02d:%02d' , @{[localtime]}[2,1,0] } ; # ç¾å¨æå»ã hh:mm:ss ã®å½¢å¼ã§åãåºãã
$/ = "\r\n" if $o{w} ; # -ræå®ã§ æ¹è¡æåãWindowså½¢å¼ã«å¤æ´ã
my $L = ',' ; # åºåã«ããç¾ããåºåãæåå
my $isep = $o{i} // "\t" ; # å
¥åã®åºåãæå $o{','} = do { $o{','} //= "\t" ; eval qq[qq[$o{','}]] } ;
my $nc = 0 ; # è¨æ°å¯¾è±¡ã¨ããªãã£ãã»ã«ã®æ°ãã«ã¦ã³ãã
my $sec = $o{'@'} // 15 ; # ä½ç§ãã¨ã«ã¬ãã¼ãã表示ãããã
my $rl ; # åãã¡ã¤ã«ã®èªãã è¡æ°ãæ ¼ç´ã
$SIG{ ALRM } = sub { say STDERR GREEN + (d3 $rl) . " lines read. " , scalar localtime ; alarm $sec } ;
my ${ INT1 } = sub {
&{ $SIG{ALRM} } ;
print STDERR BRIGHT_RED
'Do you want to get the halfway result? Then type Ctrl + C again within 2 seconds. '. "\n" .
'Really want to Quit? Then press Ctrl + "\" or Ctrl + Yen-Mark. (Ctrl+Z may be what you want.) ' . RESET "\n" ;
$SIG{INT} = sub { select *STDERR ; & ColStat ; select *STDOUT ; return } ;
sleep 2 ;
return ;
} ;
scripts/colsummary view on Meta::CPAN
# ãããããååãåå¾ããã -= ãæå®ãããå ´åã®ã¿
sub colnames ( $ ) { my @F = split /$isep/, do { my $FH = $_[0] ; my $t = <$FH> ; $rl++ if defined $t ; $t //= '' ; chomp $t ; decode ($t) } , -1 }
sub filePinfo {
exit if ($o{2}//'') eq 0 ;
$rl = d3 ($rl // 0) ; # read lines
my $procsec = tv_interval ${ dt_start } ;
my $out = "$rl line(s) read; ";
$out .= "$nc cells are not counted; " if $nc ;
$out .= sprintf '%0.6f seconds (colsummary)', $procsec ; # ãã¾ã«ãã¤ã¯ãç§åä½ã®$procsecã15æ¡ãããã§è¡¨ç¤ºãããã®ã§sprintfã
say STDERR BOLD DARK ITALIC CYAN $out ;
}
# ååã®å¤ã®åå¸ãåãåºã
sub ColFreq ( $$ ) { # 第ï¼å¤æ°ã¯ãã¡ã¤ã«ãã³ã㫠第ï¼å¤æ°ã¯åç
§
#my %zstr ; # é¤å¤ãããæååã®åºç¾é »åº¦ã(ç¹æ¤ç¨ã§ãããã) #my $intflg ; #$SIG{INT} = sub { $intflg = 1 } ;
my $maxCols = 0 ;
my $col = undef ; # 0ãªãªã¸ã³ã®ã«ã©ã çªå·
* lenlim = defined $o{l} ? sub { grep { $_ = substr $_, 0, $o{l} } @_ } : sub {} ; # -l ã§é·ãå¶é
* tailspacetrim = defined $o{s} ? sub { grep { s/\s+$// } @_ } : sub {} ;
* negcell = defined $o{'#'} ? sub { if (m/$o{'#'}/ ) { $col ++ ; $nc ++ ; goto EACH_CELL } } : sub {} ; # o{'0'} ãããã
scripts/colsummary view on Meta::CPAN
my @p = @_ ;
my @P ;
push @P , $p[0] ; ## (1) åçªå·ã®è¡¨ç¤º1ãã
push @P , GREEN BOLD $p[1] ; ## (2) ä½éãã®å¤ãåºç¾ãããã表示
push @P , BRIGHT_BLUE $p[2] if ($o{m}//'') ne 0 ; ## (3) å¹³åå¤ã®è¡¨ç¤º (å ç®ã¨æ¸ç®ã®é¢ä¿ãææ¡ããç®çãããã®ã§ãå¤ãç¡ãã¨ããã¯0ã¨è¦ãªã)
push @P , BRIGHT_YELLOW $p[3] ;## (4) åã®åå(åå)ã表示
push @P , BRIGHT_WHITE $p[4] ; ## (5) å¤ã®æå¤§ã¨æå°ãåãåºãã
push @P , $p[5] ;## (6) å
·ä½çãªå¤ã®è¡¨ç¤º (åºç¾åº¦æ°ã®å¤ãé ã« $o{g} å )
push @P , BRIGHT_GREEN $p[6] . GREEN $p[7] ;## ## (7) æé »åº¦æ°ã®åå¸## (7) ä¸ç¹(ãªãã¦ã)ã®å¦ç (7) ãã¼ã«åº¦æ°ã®åå¸
push @P , BRIGHT_BLUE $p[8] ; ## (8) å¤ã®æååé·ã®ç¯å²ã®è¡¨ç¤º
say join "\t" , @P ;
}
# å¹³åå¤ãè¨ç®ããå¦çãããã
sub aveft ( $$ ) {
my ($rHash,$rKeys) = @_ ;
my ($tval, $freq, $asum, $afreq ) ;
for( @{$rKeys} ) {
( my $num = $_ ) =~ s/(\d),/$1/g ; #s/,//g ; # 3æ¡åºåãã«ç¾ããåºåãã³ã³ããæ¶å»ãã
$tval = POSIX::strtod ( $num ) ;
$freq = $rHash->{ $_ } ;
scripts/csv2tsv view on Meta::CPAN
use Time::HiRes qw [ gettimeofday tv_interval ] ;
my ${ dt_start } = [ gettimeofday ] ;
use Getopt::Std ; getopts '~2ae:n:s:t:vQ@:', \my %o ;
use Text::CSV_XS ; # Not a core module.
use FindBin qw [ $Script ] ;
use Term::ANSIColor qw[ :constants color ] ; $Term::ANSIColor::AUTORESET = 1 ;
use Encode ;# Encode was first released with perl v5.7.3
#$| = 1 ;
END{
my $lt = sprintf '%04d-%02d-%02d %02d:%02d:%02d' , do {my @t = @{[localtime]}[5,4,3,2,1,0] ; $t[0]+=1900 ; $t[1]++ ; @t } ;
say STDERR CYAN FAINT BOLD tv_interval( ${ dt_start } ) , " seconds spent ($0 $lt)";
}
$SIG{INT} = sub {
say STDERR YELLOW FAINT BOLD UNDERLINE qq[Analysis using the function of the perl function `caller': ("~" means undefined.)] ;
for ( 0..59 ) {
my @out = caller ($_) ;
last unless @out ;
say STDERR YELLOW FAINT BOLD "$_ : " , map { $out[$_] //= '~' ; "[$_] $out[$_] " } 0..$#out ;
}
exit 1 ;
} ;
grep { $_ = decode_utf8 $_ if defined $_ } $o{e} , $o{t}, $o{n} ;
$o{e} //= qw[ \ ] ; # ã¨ã¹ã±ã¼ããããæååã«ã¤ããæå
$o{s} //= ',' ; # ãã£ã¼ã«ãã®åºåãæåãæå®
$o{'@'} //= 5 ; # ä½ãå
¥åãç¡ãå ´åã«ï¼ä½ç§ããã«è¦åãåºãã
scripts/depthdepth view on Meta::CPAN
#!/usr/bin/perl
use 5.014 ; use strict ; use warnings ;
use feature qw [ say ] ;
use Time::HiRes qw[gettimeofday tv_interval] ;
use Term::ANSIColor qw [ :constants color ] ; $Term::ANSIColor::AUTORESET = 1 ;
use File::Spec::Functions qw[ catfile splitdir rel2abs updir ] ;
use Getopt::Std ;
use List::Util qw [ max min sum sum0 reduce ] ;
use Cwd qw [ getcwd abs_path ] ;
my $time_start = [ gettimeofday ] ;
getopts '.:g:x:0:' , \my%o ;
push @ARGV , $o{x} if defined $o{x} ; # 弿°ããªãã·ã§ã³ã§ ä¸ããããå ´åã®å¦ç
my $start_dir = $ARGV [0] // "." ; # å
é ã®ãã£ã¬ã¯ããª
my $I = catfile q[] , q[] ;
my $d0 = ( getcwd ) . $I ;
chdir $start_dir or do { say STDERR "Seems no such a directory ``$start_dir''" ; exit -1 } ;
$d0 = (getcwd ). $I unless exists $o{g} && $o{g} =~ m/a/ ;
$d0 = '' if exists $o{g} && $o{g} =~ m/A/ ;
#say GREEN getcwd ;
sub head_trim ( $ ) {
(my $t = $_[0]) =~ s/^\Q$d0\E// ;
$t =~ s/\ /\\ /g ; # <-- ç©ºç½æåãã¨ã¹ã±ã¼ã xargs ã«æ¸¡ããããã«ãªãã
$t ;
}
& main ;
exit 0 ;
END{ print RESET "" } ;
sub open_dir_error_message ( $ ) {
say STDERR FAINT BOLD YELLOW "Cannot open the directory `$_[0]' so skipped." ;
}
# ãã®ã¤ã³ã¹ã¿ã³ã¹ã®ä¸ã®ãã£ã¬ã¯ããªãã¡ã¤ã«ã®ä¸è¦§ãæååã®é
åã§è¿ãã
sub get_dirs () {
my @dirs ;
#return @dirs = grep { -d $_ } glob '*' ;
opendir my $dh , '.' or do { open_dir_error_message ( abs_path "." ) ; return () } ;
@dirs = grep { ! /\A\.{1,2}\Z/ && -d $_ } readdir $dh ;
@dirs = grep { ! /\A\./ } @dirs if exists $o{'.'} && $o{'.'} eq "0" ; # é ããã¡ã¤ã«ã«é¢ããå¦ç
closedir $dh ;
scripts/depthdepth view on Meta::CPAN
sub main () {
# ã³ã³ãåºåã ãã¤ãã³çµåãã¢ã®åãåºã
my @gg = do { ! exists $o{g} ? () : (my $t = $o{g}) =~ s/[Aadlx]//g ; map { [ split /-/, $_ ] } split /,/ , $t // '' } ;
our %g1 = map { $_ ->[0] , 1 } grep { @ { $_ } == 1 } @gg ; # ãã¢ã§ã¯ãªããã®
our %g2 = map { $_->[0] ."-" .$_->[1] , 1 } grep { @ { $_ } == 2 } @gg ; # ãã¢ã®ãã®
our @S ; #ã$S[depth][maxdepth]ã®éè¨è¡¨ã¨ãªãã
our @Sq ; # $S_ln [ depth ]
$SIG{INT} = sub { say GREEN getcwd ; & output } ;
& node_proc ( 0 ) ;
& output () unless exists $o{g} && $o{g} =~ m/x/ ;
sub node_proc ( $ ) {
# 第ï¼å¼æ°ã¯ãå
ã®æå®ãã£ã¬ã¯ããªããã®æ·±ãã§ããã
# è¿ãå¤ã¯ãããã§çµé¨ããæå¤§ã®æ·±ãã§ããã
my $dep = $_[0] ; # æ·±ã
my $mdep = $dep ; # æå¤§æ·±ãã®è¨é²ç¨ã
my @dirs ; # = get_dirs () ;
opendir my $dh , '.' or do { open_dir_error_message ( abs_path "." ) ; return () } ;
#@dirs = sort grep { ! /\A\.{1,2}\Z/ && -d $_ && ! -l $_ } readdir $dh ; # <-- - sort 㯠-g ãç¡ãã¨ãã¯ä¸è¦ã§ãã
my @dirs0 = sort grep { ! /\A\.{1,2}\Z/ && -d $_ } readdir $dh ; # <-- - sort 㯠-g ãç¡ãã¨ãã¯ä¸è¦ã§ãã
for ( @dirs0 ) { #reverse 0 .. $#dirs ) {
if ( -l $_ )
{
say join "\t" , $o{g} =~ m/d/ ? () : "link", head_trim (getcwd).$I.$_ if exists $o{g} && $o{g} =~ m/l/;
#splice @dirs , $_ , 1 ;
++ $Sq [ $dep + 1 ] ;
next ;
}
push @dirs , $_ ;
}
#@dirs = grep { ! ( -l $_ && ++ $Sq[$dep+1] ) } @dirs ;
#@dirs = grep { ! ( -l $_ ) } @dirs ;
@dirs = grep { ! /\A\./ } @dirs if exists $o{'.'} && $o{'.'} eq "0" ; # é ããã¡ã¤ã«ã«é¢ããå¦ç
#closedir $dh ;
for ( @dirs ) {
#chdir $dh ;
next unless chdir $_ ;
#chdir $_ ;
$mdep = max $mdep , & node_proc ( $dep + 1 ) ; # <-- å帰çãªå¼ã³åºã
chdir $dh or die ; # ããã§æ»ããªãã®ã¯é大
}
closedir $dh ;
$S [ $dep ] [ $mdep ] ++ ;
say join "\t" , $o{g} =~ m/d/ ? () : $dep, head_trim getcwd if $g1{$dep} ;
say join "\t" , $o{g} =~ m/d/ ? () : "$dep-$mdep", head_trim getcwd if $g2{"$dep-$mdep"} ;
return $mdep ;
}
sub output () {
my $asum = 0 ; # ãã¡ã¤ã«æ°ã®åè¨
my @out = ( '', 0 .. $#S , '+' , '++' ) ;
push @out , MAGENTA "Symbolic_link_dir" if sum0 map { $_ // 0 } @Sq ;
say join "\t" , @out ;
for ( 0 .. $#S ) {
$S[$_][$_] //= 0 ; # unless exists $o{0} && $o{0} eq "." ; # å¯¾è§æåã«å¯¾ããå¦ç
for my $i ( $_ .. $#S ) { $S[$_][$i] //= '' } ;
my @out = ( $_ , map { ! defined $_ ? '' : $_ eq '' ? FAINT 0 : $_ } @{$S[$_]} ) ;
push @out , FAINT my $rsum = sum0 map { $_ || 0 } @{$S[$_]} ;
push @out , $asum += $rsum ;
push @out , MAGENTA "+$Sq[ $_ ]" if $Sq [$_] ;
say join "\t" , @out ;
}
}
END{
say STDERR " -- " , REVERSE ITALIC " Process time: " , CLEAR " " ,
sprintf( "%.6f", tv_interval $time_start , [ gettimeofday ] ) , " second(s)." ;
}
}
## ãã«ãã®æ±ã
sub VERSION_MESSAGE {}
sub HELP_MESSAGE {
use FindBin qw[ $Script ] ;
$ARGV[1] //= '' ;
scripts/expskip view on Meta::CPAN
my $fnFlag = @ARGV > 1 ;
while ( 1 ) {
my $fn = shift @ARGV ; # ãã¡ã¤ã«å
my $fh ; # ãã¡ã¤ã«ãã³ãã«
if ( defined $fn ) {
open $fh , "<" , $fn or warn "File `$fn' does not open." and next ;
} else {
$fh = *STDIN ;
}
binmode $fh , ":gzip(autopop)" if $o{z} ;
say $fn if $fnFlag ;
eachFile $fh ;
close $fh ;
last if ! @ARGV ;
print "\n" ; # ãã¡ã¤ã«éã®ç©ºè¡
}
}
sub eachFile ( $ ) {
#$. = 0 ;
@nums = @nums0 ;
scripts/fileday view on Meta::CPAN
#!/usr/bin/perl
use 5.014 ; use strict ; use warnings ;
use feature qw [ say ] ;
use Time::HiRes qw[gettimeofday tv_interval] ;
use Term::ANSIColor qw [ :constants color ] ; $Term::ANSIColor::AUTORESET = 1 ;
use File::Spec::Functions qw[ catfile splitdir rel2abs updir ] ;
use Getopt::Std ;
use List::Util qw [ max min sum sum0 reduce uniq ] ;
use Cwd qw [ getcwd abs_path ] ;
use POSIX qw[ strftime ] ;
my $time_start = [ gettimeofday ] ;
getopts '~.:b:dHMmrSv:x:y' , \my%o ;
push @ARGV , $o{x} if defined $o{x} ; # 弿°ããªãã·ã§ã³ã§ ä¸ããããå ´åã®å¦ç
my $start_dir = $ARGV [0] // "." ; # å
é ã®ãã£ã¬ã¯ããª
my $I = catfile q[] , q[] ;
my $d0 = ( getcwd ) . $I ;
chdir $start_dir or do { say STDERR "Seems no such a directory ``$start_dir''" ; exit -1 } ;
$d0 = (getcwd ). $I unless exists $o{g} && $o{g} =~ m/a/ ;
$d0 = '' if exists $o{g} && $o{g} =~ m/A/ ;
& main ;
exit 0 ;
END{ print RESET "" } ;
sub main () {
our $fmt = $o{y} ? "%Y" : $o{m} ? "%Y-%m" : $o{d} ? "%Y-%m-%d" : $o{H} ? "%Y-%m-%dT%H"
: $o{M} ? "%Y-%m-%dT%H:%M" : $o{S} ? "%Y-%m-%dT%H:%M:%S" : "%Y-%m-%d" ;
& node_proc ( 0 ) ;
& output () ;
sub open_dir_error_message ( $ ) {
say STDERR FAINT BOLD YELLOW "Cannot open the directory `$_[0]' so skipped." ;
}
sub node_proc ( $ ) {
# 第ï¼å¼æ°ã¯ãå
ã®æå®ãã£ã¬ã¯ããªããã®æ·±ãã§ããã
# è¿ãå¤ã¯ãããã§çµé¨ããæå¤§ã®æ·±ãã§ããã
my $dep = $_[0] ; # æ·±ã
my $mdep = $dep ; # æå¤§æ·±ãã®è¨é²ç¨ã
our ( %nA , %nM, %nC ) ; #ãã¡ã¤ã«ã®åæ°ãæéã®ãã³æ¯ã«è¨é²ãã
our ( %bA , %bM, %bC ) ; #ãã¡ã¤ã«ã®ãã¤ãæ°ã®åè¨ãæéã®ãã³æ¯ã«è¨é²ãã
scripts/fileday view on Meta::CPAN
$mdep = max $mdep , & node_proc ( $dep + 1 ) ; # <-- å帰çãªå¼ã³åºã
chdir $dh or die ; # ããã§æ»ããªãã®ã¯é大
}
closedir $dh ;
return $mdep ;
sub output () {
my @t0 = ( "when" , "#accessed" , "#modified" , "#created" ) ;
push @t0 , "byteSum_A" , "byteSum_M" , "byteSum_C" unless exists $o{b} && $o{b} eq "0" ;
say join "\t" , @t0 ;
my @k = uniq sort keys %nA , keys %nM, keys %nC ;
@k = reverse @k if $o{'~'} ;
for ( @k ) {
my @t = ( $_ , $nA{$_} , $nM{$_} , $nC{$_} ) ;
push @t , $bA{$_} , $bM{$_} , $bC{$_} unless exists $o{b} && $o{b} eq "0" ;
say join "\t" , map {$_ //'' } @t ;
}
}
}
END{
exit if exists $o{v} && $o{v} eq "0" ;
say STDERR " -- " , REVERSE ITALIC " Process time: " , CLEAR " " ,
sprintf( "%.6f", tv_interval $time_start , [ gettimeofday ] ) , " second(s)." ;
}
}
## ãã«ãã®æ±ã
sub VERSION_MESSAGE {}
sub HELP_MESSAGE {
use FindBin qw[ $Script ] ;
$ARGV[1] //= '' ;
open my $FH , '<' , $0 ;
scripts/freq view on Meta::CPAN
my @givenL ;
my %gl ; # åæ°ãæ°ãã対象ãæå®ããã¦å ´åã¯ããããèªã¿åãã(Given List)
my ($hTake, $tGet) = $o{x} =~ m/\d+/g if defined $o{x} ; # -xã®ãªãã·ã§ã³ããæ°å¤ãæå¤§2ååãåºã
$tGet //= 12 ; ## ç»é¢ã溢ããªãããã«å¶éãã
my $sec = $o{'@'} // 15 ; # ä½ç§ããã«ã¢ã©ã¼ã ãçºçãããã
$SIG{ALRM} = sub {
my $n = $. =~ s/(?<=\d)(?=(\d\d\d)+($|\D))/,/gr ; # 3æ¡ãã¨ã«åºåãã
say STDERR GREEN "$n lines read ($Script). " , scalar localtime ;
alarm $sec
} ;
sub IntFirst {
&{ $SIG{ALRM} } ;
print STDERR BRIGHT_RED
'Do you want to get the halfway result? Then type Ctrl + \ again within 2 seconds. '. "\n" .
'Really want to Quit? Then press Ctrl + "\" or Ctrl + Yen-Mark after 2 seconds later. ' . RESET "\n" ;
local $SIG{QUIT} = sub { select *STDERR ; & output ; select *STDOUT } ;
sleep 2 ; # eval { local $SIG{ALRM} = sub { alarm $sec ; die } ; alarm 2 ; 1 while 1 } ;
#$SIG{INT} = 'IntFirst' ;
scripts/freq view on Meta::CPAN
# æ¸ãåºã
#my $header ;
my @cNames ; # æåã®è¡ã«åºåãããªã¹ã
push @cNames , "Lin#Range" if $o{':'} ;
push @cNames , "CumRat" if $o{a} && $o{'%'} ;
push @cNames , "AccSum" if $o{a} ;
push @cNames , "Ratio" if $o{'%'} ;
push @cNames , "Freq*" unless $o{1} ;
push @cNames , $first // "LinStr" ; # unless defined $first ;
push @cNames , "RIGHT_FIELDS.." if defined $hTake ;
say UNDERLINE join $o , @cNames if ($o{0}//'') ne '0' ;
* lineRange = sub { $strfst{$_} //= 0 ; $strlst{$_} //= 0 ; "$strfst{$_}-$strlst{$_}:" } ;
* accOutput = sub { $cumsum += $strcnt { $_ } ; $o{'%'} ? $cumsum . sprintf( "\t%5.2f%%", 100.0 * $cumsum / $totalSum) : $cumsum } ;
for ( @K ) {
sub tailx {
my @keys = sorting ( $cntX1X2 { $_ } ) ;
@keys = splice @keys , 0, $tGet if defined $tGet ;
my $out = '' ;
#say STDERR "@keys" ; # = sort { $cntX1X2{$_}{$a} <=> $cntX1X2{$_}{$b} } @keys
@keys = sort { $cntX1X2{$_}{$b} <=> $cntX1X2{$_}{$a} } @keys ;
for my $k ( @keys ) { $out .= "\t[$k]x$cntX1X2{$_}{$k}" } ;
return $out ;
}
$strcnt{ $_ } //= 0 ;
next unless y_filter ( $strcnt{$_} ) ;
print & lineRange, "\t" if exists $o{':'} ; # -: ãªãã·ã§ã³ã«ãããã©ã®è¡çªå·ã§ç¾ããã®ããåºåã
print & accOutput, "\t" if exists $o{a} ; # -s ãªãã·ã§ã³ã«ãããç´¯åã表示ã
printf "%5.2f%%$o", 100.0 * $strcnt{$_} / $totalSum if $o{'%'} ;
scripts/headomit view on Meta::CPAN
#!/usr/bin/perl
use 5.014 ; use strict ; use warnings ;
use Getopt::Std ; getopts ':!_12cfh:t:v' , \my%o ;
use Term::ANSIColor qw[ :constants ] ; $Term::ANSIColor::AUTORESET = 1 ;
use FindBin qw[ $Script ] ;
use feature qw[ say ] ;
sub subinfo ( ) ;
sub show ;
$o{h} //= 1 ;
my $fc = 0 ; # ããã¾ã§ã«èªãã ãã¡ã¤ã«ã®æ° (file count)
my $pc = 0 ; # æ¨æºåºåã«åºåããè¡æ° (print count)
my $ic = 0 ; # å
¥åããè¡æ° (input count)
$| = 1 if $o{'!'} ;
scripts/headomit view on Meta::CPAN
LOOP_END :
if ( eof ) {
@s = () ;
& flag_c ; #do{ $ic += $. ; $. = 0 } if ! $o{c} ;
$fc ++ ;
unless ( eof () ) { # æå¾ã®ãã©ã«ãã§ç¡ãéã
#do { my $t = <> for 1 .. $o{h} } if ! $o{2} ;
START2 :
exit if eof () ;
do { do { my $t = <> ; if (eof) { ++$fc ; &flag_c ; goto START2 } } for 1.. $o{h} } if ! $o{2} ;
say '' if $o{'_'} ;
}
}
}
}
sub d3 { $_[0] =~ s/(?<=\d)(?=(\d\d\d)+($|\D))/,/gr }
sub subinfo ( ) {
$ic += $. ;
$_ = d3 $_ for $ic, $pc, $fc ;
scripts/lastaccess view on Meta::CPAN
#!/usr/bin/perl
use 5.014 ; use strict ; use warnings ;
use File::Find ;
use Time::HiRes qw[ stat tv_interval time gettimeofday ] ;
use Getopt::Std ; getopts ',:d:g:x:',\my %o ;
use Term::ANSIColor qw[ :constants ] ; $Term::ANSIColor::AUTORESET = 1 ;
use Pod::Perldoc ;
use feature qw[ say ] ;
$o{d} //= 1 ; # ãã£ã¬ãã¯ãªã«å¯¾ããå¦çãæå¶ãããã©ããã0ãæç¤ºçã«ä¸ãããããæå¶ã
$o{g} //= 12 ; # æè¿ã¢ã¯ã»ã¹ããããã¡ã¤ã«ãæå¤§ä½ååãåºãã
my $start_time = [ gettimeofday ] ;
main () ; exit 0 ;
sub main {
my @sdir = defined $o{x} ? ($o{x}) : @ARGV ? @ARGV : qw[ . ] ;
our @ Files = () ;
scripts/lastaccess view on Meta::CPAN
my @s = stat $_ ;
my $atime = $s[8] ;
my $bytes = $s[7] ;
push @ Files , ff->new ( $_ , $atime, $bytes ) if ! ( -d _ && do { $_.='/' ;1} ) || $o{d} ;
}
my $now = time ;
$_ ->{ elapsed } = $now - $_->{atime} for @Files ;
@ Files = sort { $a ->{elapsed} <=> $b->{elapsed} } @Files ;
say join "\t", "Diff_seconds", "Seconds_before", "Byte_size", "File_name" ;
my $mrec0 = 0 ;
my $shown = 0 ;
for ( splice @Files , 0 , $o{g} ) {
my @t ;
my $mrec = $_->{elapsed} ;
push @t , sprintf "%0.6f" , $mrec - $mrec0 ;
push @t , sprintf "%0.6f" , $mrec ;
push @t , $_->{bytes}, $_->{name} ;
$t[2] =~ s/(?<=\d)(?=(\d\d\d)+($|\D))/,/g if $o{','} // '' ne "0" ;
say join "\t" , @t ;
$shown ++ ;
$mrec0 = $mrec ;
}
my $num = @ Files ;
my $elps = sprintf "%.6f" , tv_interval $start_time ;
say STDERR CYAN "Files processed : $num ; Shown above : $shown ; Elapsed seconds : $elps" ;
}
sub HELP_MESSAGE { # <-- - ãµãã³ãã³ããå¼ã°ãã¦ããã¨ãã¯ãã®ãã«ããå¼ã°ããã
local @ARGV = do { my ($x,@y) = 0 ; 1 while ( @y = caller $x++ )[ 0 ] eq "Getopt::Std" ; $y[1] } ;
Pod::Perldoc -> run ;
}
sub VERSION_MESSAGE { $ Getopt::Std::STANDARD_HELP_VERSION = 1 } # <- here?
package ff ;
sub new ( $ ) { #say 1 ;
my $ins = { name => $_[1] , atime => $_[2] , bytes => $_[3] } ;
return bless $ins ;
}
=encoding utf8
=head1 NAME
lastaccess DIRNAME
scripts/quantile view on Meta::CPAN
chomp ;
& layer ;
push @{ $VV{ $layer } } , $_ ;
$LL ++ ;
}
alarm 0 ;
do { * STDOUT = * STDERR ; HELP_MESSAGE () ; exit } if $. == 0 ; # èªåãã0è¡ãªãã°ããã«ããåºãã
}
sub proc_out ( ) {
say UNDERLINE join "\t" , @xco , 'num' , $o{L} ? 'Layer' : '' ; # åºå表ã®è¡¨é
do { @V = @{ $VV{$_} } ; LayerOut ( $_ ) } for sort keys %VV ; # åºå表ã®ä¸èº« # <-- - ã½ã¼ãã®ä»æ¹ã«æ°å¤ã½ã¼ãã®ãªãã·ã§ã³ã欲ããã
}
sub LayerOut ( $ ) { # åºååè¡ã«ã¤ãã¦ã®å¦ç :
our $layer = $_[0] ;
our $Vd = $#V ; # divisionã®æ°
@V = $o{s} ? sort @V : sort { $a <=> $b } @V ;
sub LineOut ( &$ ) { # åºå1è¡ã®å¦çå
容
say join "\t", map ( $_[0]->($_) + 0, @xco ) , ($Vd+1) . $_[1] , $layer if!$o{s} ;
say join "\t", map ( $_[0]->($_) .'', @xco ) , ($Vd+1) . $_[1] , $layer if $o{s} ; # dualvar 対çã§åé·ã«ãªã£ã¦ãã¾ã£ãã
}
# åä½ç¹ã®è¨ç®æ³ (æ¦å¿µçã«èããããä½ãæ¹ã®å¤ãé«ãæ¹ã®å¤ãç·åè£éãåç´ã«è¿ãå¤)
sub low_val ( $ ) { $V[ floor $_[0] * $Vd / $Q ] } ;
sub high_val ( $ ) { $V[ ceil $_[0] * $Vd / $Q ] } ;
sub near_val ( $ ) { $V[ floor $_[0] * $Vd / $Q + 0.5 ] } ; # 忍äºå
¥æ³ã¨ãªã.
sub intp_val ( $ ) { my $x=$_[0]*$Vd/$Q ; my $x1=floor $x ; my $x2=ceil $x ; my $f1=$x-$x1 ; $V[$x1]*(1-$f1)+$V[$x2]*$f1 }
LineOut ( \& high_val , '+' ) if $o{h} ; # ä¸å´ã®å¤
LineOut ( \& near_val , '' ) if!$o{0} ; # é常ã®ä¸éã®å¤ ( -0ãæå®ãããããé常ã®å¤ã¯åºåããªãã)
LineOut ( \& intp_val , 'i' ) if $o{I} ; # ç·åè£éå¤ã§åºå
LineOut ( \& low_val , '-' ) if $o{l} ; # ä¸å´ã®å¤
say BOLD join "\t" , & SelfWeight() , $layer if $o{w} || $o{3} ;
sub SelfWeight () {
#my $total = sum0 @V ;
my $total = sum0 map { $_ . '' } @V ; # dualvarã®å ´åãæååã¨ãã¦æ ¼ç´ãããæ¹(éã¿)ã ããè¶³ããã
my @ths = map { $total * $_ / $Q } @xco ; # é¾å¤
my ( $t, $t_ ) = ( 0 , 0 ) ; # éä¸ã®åè¨
my @ret ; # çµæã®æ ¼ç´ç¨
my $i = 0 ; # 弿°
do { push @ret , $V[0] ; $i++ } if $ths[0] == 0 ; #<-- 0ã®ä»£ããã«V[0]ã代å
¥ãããã ãç¹å¥ã§ã便å®ä¸ã®ãã®ããããªãã
LOOP :
for ( @V ) {
scripts/quantile view on Meta::CPAN
}
sub Info2ndry ( ) {
$LL ++ ;
$LL =~ s/(?<=\d)(?=(\d\d\d)+($|\D))/,/g ; # 3æ¡æ¯ã«ã³ã³ãã§åºåã
my $out = '' ;
$out = CYAN "[$Script] read lines : " ;
$out .= BRIGHT_CYAN $LL ;
$out .= CYAN " (" . tv_interval ($time0) . " sec.) " ;
$out .= BRIGHT_CYAN $Q . CYAN " divisions." ;
say STDERR $out ;
}
=encoding utf8
=head1
$0 -/ åä½å岿°
åä½ç¹ãæ±ãããé常ã®(ç·å½¢)è£éå¤ã®ã¿ãªãããä¸å´ã®å¤ã¨ä¸å´ã®å¤ãåºåããã
2次æ
å ±ã¨ãã¦ä½åã®å¤ãå
¥åããèªã¿åã£ããããæ¨æºã¨ã©ã¼åºåã«åºåã
scripts/samesize view on Meta::CPAN
#!/usr/bin/perl
use 5.014 ; use strict ; use warnings ;
use feature qw [ say ] ;
use Time::HiRes qw[gettimeofday tv_interval] ;
use Term::ANSIColor qw [ :constants color ] ; $Term::ANSIColor::AUTORESET = 1 ;
use File::Spec::Functions qw[ catfile splitdir rel2abs updir ] ;
use Getopt::Std ;
use List::Util qw [ max min sum sum0 reduce uniq ] ;
use Cwd qw [ getcwd abs_path ] ;
use POSIX qw[ strftime ] ;
#use Digest::SHA1 qw[ sha1 sha1_hex sha1_base64 ];
use Digest::MD5 qw(md5 md5_hex md5_base64);
sub dtwhen ( $ ) ;
my $time_start = [ gettimeofday ] ;
my $t0 = $time_start -> [0] ;
#say dtwhen ( $t0 ) ;
getopts '0:2b:Df:nos' , \my%o ;
my @files = @ARGV ? @ARGV : glob '*' ;
$o{2} = 1 if $o{D} ; # <--- è¦æ³¨æã ä¸ç¨æã®ãã®è¡ã¯ã³ã¡ã³ãã¢ã¦ããé¤å»ãããªãããã«ã
$o{0} //= 1 ; # <--- è¦æ³¨æã ä¸ç¨æã®ãã®è¡ã¯ã³ã¡ã³ãã¢ã¦ããé¤å»ãããªãããã«ã
& main ;
exit 0 ;
END{ print RESET "" } ;
sub main () {
my %s2f ;
for ( @files ) {
next if -d $_ ;
my $size = ( lstat $_ ) [7] ; # <-- -- lstat ã§è¯ãã®ã
next if defined $o{b} && $size < $o{b} ;
push @{$s2f{$size}} , $_ ;
my @out = ( $size , $_ ) ;
#say join "\t" , @out ;
}
my $least = $o{f} // 2 ; # ? 1 : 2 ;
my @sizes = sort {$a<=>$b} grep { @{ $s2f { $_ } } >= $least } keys %s2f ;
my $nfmt = do { my $t = max @sizes , 0 ; my $d = length "$t" ; "%${d}s" } ; # <-- %${d}u ??
for my $size ( @sizes ) {
#next if @{ $s2f{$size} } == 1 ;
my @files = sort @{ $s2f{$size} } ; # ãã¡ã¤ã«ã®ä¸è¦§
@files = sort {(stat $a)[9] <=> (stat $b)[9] } @files if $o{n} // $o{o} ;
@files = reverse @files if $o{n} ;
scripts/samesize view on Meta::CPAN
$ctx->addfile( $FH );
#while ( <$FH> ) { $ctx -> add ( $_ ) }
close $FH ;
}
utime @t3[0,1] , $_ unless $o{0} ; # <- -- --- æå»æ
å ±ãç ´å£ããã®ã§æ³¨æããããã¯ç§ã®å°æ°ç¹ä»¥ä¸ã®æ
å ±ãæ¶ããã
my $digest = $o{0} ? '---' : $ctx->hexdigest ;
next if $o{2} && ! $seenD{ $digest } ++ ;
if ( $o{D} && ! $o{0} ) { unlink $_ ; next } ;
my @out = ( sprintf ($nfmt , $size) , $digest , map ( dtwhen $_ , @t3 ) , $_ ) ;
say join "\t" , @out ;
}
}
}
sub dtwhen ( $ ) {
my $fmt = abs ( $_[0] - $t0 ) >= 86400 * 180 ? '%Y-%m-%d' : $o{s} ? '%m-%d %H:%M:%S' : '%m-%d %H:%M';
strftime $fmt , localtime $_[0] ;
}
END{
exit if exists $o{v} && $o{v} eq "0" ;
say STDERR " -- " , REVERSE ITALIC " Process time: " , CLEAR " " ,
sprintf( "%.6f", tv_interval $time_start , [ gettimeofday ] ) , " second(s)." ;
}
## ãã«ãã®æ±ã
sub VERSION_MESSAGE {}
sub HELP_MESSAGE {
use FindBin qw[ $Script ] ;
$ARGV[1] //= '' ;
open my $FH , '<' , $0 ;
while(<$FH>){
scripts/summing view on Meta::CPAN
#!/usr/bin/perl
use 5.014 ; use strict; use warnings;
use Time::HiRes qw [ gettimeofday tv_interval ] ;
my ${ dt_start } = [ gettimeofday ] ;
use Scalar::Util qw/looks_like_number/;
use Getopt::Std; getopts "=~1:c:f:ghqu", \my%o;
use Term::ANSIColor qw[ :constants ] ;
use feature qw[ say ] ;
sub readInput () ; # å
¥åã®èªåã
sub printOutput () ; # åºåã®æ¸ãåºã
eval { use bigint qw[ hex ]} if $o{h} ;
$| = 1 unless $o{u} ;
my $sum = 0 ; # æ±ãããåè¨å¤
my $lln = 0 ; # å ç®å¯¾è±¡ã¨ãªã£ãè¡ã®æ°
my $nlln = 0 ; # éå ç®å¯¾è±¡ã®è¡ã®æ°
my $header = undef ; # -= ãæå®ãããå ´åã«ãããè¡ãæ ¼ç´ã
my $fp = $o{f} >=0 ? $o{f} - 1 : $o{f} if defined $o{f} ; # ã©ã®åãæ½åºããã
my $fps = $fp >=0 ? $fp + 1 : 0 if defined $o{f} ; # splitã§ä½¿ãã
my ${ ctrl_c } = sub {
$Term::ANSIColor::AUTORESET = 0 ;
my $lt = sprintf '%04d-%02d-%02d %02d:%02d:%02d' , do {my @t = @{[localtime]}[5,4,3,2,1,0] ; $t[0]+=1900 ; $t[1]++ ; @t } ;
my $ln = $. ; $ln =~ s/(?<=\d)(?=(\d\d\d)+($|\D))/,/g ; # 3æ¡æ¯ã«ã³ã³ãã§åºåã
say ITALIC DARK BOLD sprintf " The current result ($lt): %s lines have been processed." , $ln ;
printOutput ;
say YELLOW 'Push Ctrl+\ or Ctrl+Z to stop the calculation.' ;
print RESET '' ;
} ;
readInput ;
printOutput ;
exit 0 ;
sub readInput () {
chomp ( $header = <> ) if $o{'='} ; # ãããè¡
$SIG{ INT } = $ { ctrl_c } ;
scripts/summing view on Meta::CPAN
#my $org ; # å
¥åã®å
ã®æåå
* orgStore = defined $o{1} && $o{1} ? sub { @_ = ($_) } : sub { @_ = () } ;
* colChoose = defined $fp ? sub { $_ = [ split ] -> [ $fp ] } : sub { } ;
* caseHex = defined $o{h} ? sub { $_ = hex $_ } : sub {} ;
* outOfCount = defined $o{c} && $o{c} == 0 ? sub { } : sub { do { $nlln ++ ; goto LOOP } if ! & get_num } ;
* theSumming = $o{h} ? sub { $sum += $_ } : sub { $sum = "$sum" + "$_" } ;
* get_num = $o{g} ? sub { m/[-\.\d]+/ ; $_ = $& ; looks_like_number $_ } : sub { looks_like_number $_ } ;
* progress = defined $o{1} && $o{1} eq '0' ? sub { () } :
! $o{'~'} ? sub{ s/(^|[^0123456789.eEfF+-])(\d+)/$1+$2/g ; "$sum"."\t<= $_" } : # eEfFãªã©ã¨ããé¨åã¯ããã§è¯ãã®ã?
sub { s/(^|[^+-0123456789.eEfF+-])(\d+)/$1+$2/g ; "$_\t"."=> $sum" } ;
* doPrint = defined $o{1} && $o{1} eq '0' ? sub { } : sub { say join "\t" , @_ } ;
LOOP : while( <> ) {
chomp ;
& orgStore ;
& colChoose ;
& caseHex ;
& outOfCount ; # LOOPã«ã¸ã£ã³ããããã¨ãããã
& theSumming ; # <-- ããã§è¶³ãç®ã®è¨ç®ããã
#$sum = "$sum" + "$_" ;
#$sum = "$sum + $_ ;
scripts/summing view on Meta::CPAN
sub printOutput () {
#my $FH = $o{1} ? \* STDOUT : \*STDERR ; # <-- æå³ããã£ãã®ã???
select $o{1} ? \* STDOUT : \*STDERR ; # <-- æå³ããã£ãã®ã???
print $o{q}? '' : 'header=' , qq{'$header'\t} if $o{'='} ;
my $fmt = $o{q} ? "%s\t%d\t%g\t%s" : "%s <- sum ;\t%d + %d <- counted + not ; \t%s <- average ;" ;
#$fmt = "%50X <- sum ;\t%d + %d <- counted + not ;" if $o{h} ;
my $quot = $lln != 0 ? $sum/$lln : "NaN" ;
if ( "$quot" > $quot ) { $quot = "$quot" . '..(-)' }
elsif ( "$quot" < $quot ) { $quot = "$quot" . '..(+)' }
#if ( $o{h} ) { say sprintf( & hex8 ( $sum) ; return } ;
$sum = & hex8 ( $sum ) if $o{h} ;
say sprintf ($fmt , $sum, $lln, $nlln , "$quot") , sprintf "\t%0.6f sec calculation (summing)." , tv_interval ${ dt_start } ;
}
sub hex8 {
my @out = '' ;
my $n = $_ [0] ; $n = 0 if $n eq "NaN" ;
my $c = 12 ;
do {my $t = $n % 16**8 ; $n = int $n /16**8 ; unshift @out , sprintf "%08x" , $t ; say $n } while ($n != 0 && $c--) ;
my $out = join " " , @out ;
$out =~ s/^00+/0x 0/;
return $out ;
}
sub VERSION_MESSAGE {}
sub HELP_MESSAGE{
use FindBin qw[ $Script ] ;
$ARGV[1] //= '' ;
scripts/venn view on Meta::CPAN
if ( eof ) { $N++ ; my $dummy = <> if $o{'='} && ! eof() ; last } ;
}
while ( <> ) {
chomp ;
$fq[$N]{$_} ++ if exists $fq_{$_} ;
#$fq_{$_} ++ ;
if ( eof ) { $N++ ; my $dummy = <> if $o{'='} && ! eof() } ;
}
# Printing
say join "\t", "*", (map {"file$_"} 1 .. $N) ; # , $flag_v0 ? () : ('strmin','strmax') ;
#my @out ;
#push @out , scalar keys %fq_ ;
say join "\t" , 'freq' , map { sum0 values %{$fq[$_]} } 0 .. $N-1 ;
say join "\t" , 'card' , map { scalar keys %{$fq[$_]} } 0 .. $N-1 ;
#for my $B ( sort { $a <=> $b } keys %bfq_ ) {
# my @out = map { $_ // 0 } map { $bfq { $B } [$_] } 0 .. $N -1 ;
# push @out , $bfq_min{$B} , $bfq_max{$B} if ! $flag_v0 ;
#say join "\t" , $bfq_{$B} , @out ; #,
#}
}
sub read_all
{
# READING
my $dummy = <> if $o{'='} ;
while ( <> ) {
scripts/venn view on Meta::CPAN
my @which = grep { exists $fq[$_]{$k} } 0 .. $N-1 ; # ãã®æååãã©ã®ãã¡ã¤ã«ãæã¤ã
my $B = sum0 map { 1 << $_ } @which ; # ããããã¿ã¼ã³
$bfq_ { $B } ++ ;
$bfq { $B } [ $_ ] += $fq [ $_ ] { $k } for @which ;
next if $flag_v0 ;
$bfq_min{$B} //= $k ; $bfq_min{$B} = $k if $bfq_min{$B} gt $k ;
$bfq_max{$B} //= $k ; $bfq_max{$B} = $k if $bfq_max{$B} lt $k ;
}
# Printing
say join "\t", "card3lity", (map {"file$_"} 1 .. $N) , $flag_v0 ? () : ('strmin','strmax') ;
for my $B ( sort { $a <=> $b } keys %bfq_ ) {
my @out = map { $_ // 0 } map { $bfq { $B } [$_] } 0 .. $N -1 ;
push @out , ($bfq_min{$B} ne $bfq_max{$B})? ($bfq_min{$B} , $bfq_max{$B}) : $bfq_min{$B} if ! $flag_v0 ;
say join "\t" , $bfq_{$B} , @out ; #,
}
}
sub secondary_info
{
my $procsec = tv_interval ${ dt_start } ; #time - $time0 ; # ãã®ããã°ã©ã ã®å¦çã«ããã£ãç§æ°ãæ¯è¼ãã2åã®æå»ã¯ç§åä½ãªã®ã§ã±1ç§æªæºã®èª¤å·®ã¯çºçããã
* d3 = sub { $_[0] =~ s/(?<=\d)(?=(\d\d\d)+($|\D))/,/gr } ;
print STDERR BOLD ITALIC DARK CYAN & d3 ( $. ) . " lines processed. " ;
print STDERR BOLD ITALIC DARK CYAN "($Script ; " . $procsec . " sec.)\n" ;
}
scripts/xlsx2tsv view on Meta::CPAN
#!/usr/bin/perl
use 5.014 ; use warnings ;
use feature qw [ say ] ;
use Time::HiRes qw[gettimeofday tv_interval] ; my ${ dt_start } = [ gettimeofday ] ;
use Term::ANSIColor qw [ :constants color ] ; $Term::ANSIColor::AUTORESET = 1 ;
use Getopt::Std ; getopts '2:d:n:s:x:' , \my%o;
#use File::Spec::Functions qw[ catfile splitdir rel2abs updir ] ;
use POSIX qw[ strftime ] ;
use Spreadsheet::XLSX ;
use Text::Iconv ;
use Encode qw[ decode encode_utf8 ] ;
sub n2Xcol ($) { my $c = $_[0] ; my $t='A' ; $t++ while $c-- ; $t } # æ°å¤ãA,..,Z,AA,..ZZ,AAA. ã«å¤æãã颿°ãå¹çã¯è¯ããªãã
sub nl2some ($) { ! defined $o{n} ? $_[0] // '' : do { $_ = $_[0] // '' ; s/\r\n/$o{n}/gr } } # ã»ã«å
æ¹è¡ãé©å½ã«ç½®ããããã
my ${ sheet_num } = 0 ; # ã·ã¼ãã®ææ°
my ${ sheet_name } = "" ;
my ($r1, $r2 , $c1 , $c2 ) ; # å¦çããã·ã¼ãå
ã§ã®å·¦ä¸ã¨å³ä¸ã®åº§æ¨
my $filename = $o{x} // $ARGV[0] // do { say STDERR BOLD DARK YELLOW "Specify a '.xlsx' file:" ; say glob '*.xlsx' ; exit 1 } ;
END{
my @out ;
push @out , "$sheet_num sheet(s) in '$filename'" ;
$r1++; $r2++; $c1++; $c2++ ; # æå¾ãªã®ã§ç ´å£çãªæä½ãå ããã
$sheet_name = encode_utf8 $sheet_name ;
push @out , "processed sheet: '$sheet_name' with Row: $r1..$r2, Col: $c1..$c2" ;
push @out , sprintf "%0.6f sec calculation (%s)." , tv_interval ( $dt_start ) , $0 =~ s/.*\///r ;
push @out , sprintf 'done %04d-%02d-%02d %02d:%02d:%02d' , do {my @t = @{[localtime]}[5,4,3,2,1,0] ; $t[0]+=1900 ; $t[1]++ ; @t } ;
say STDERR DARK BOLD ITALIC GREEN join "; " , @out if ! $o{2}//'' eq '0'
}
# æåã³ã¼ãã®æå®ã®ä¸è¦§:
## ãããããªå®é¨ãããã®ã§ããã®æã«ä½¿ã£ãæåã³ã¼ããæ®ãæå³ã§ãé
åã®ãããªå½¢ã§å®é¨ã«ä½¿ã£ãæåã³ã¼ããæ®ãã1 ã§å·¦ãã2çªç®ãæ¡ç¨ãã¦ãããã¨ã示ã
### ãã¼ãæ°å : â
, â
¡, â
¢, â
¤ ; 丸æ°å : â â¡â²â³ ; å
¨è§ãã¤ãã³ãã¤ãã¹ ï¼ ;
my ${ cc4out } = ':utf8' ;
my ${ cc4iconv } = qw[ shift_jisx0213 cp932 windows-1251 utf-8 ] [1] ; # ã¨ã¯ã»ã«ãã¡ã¤ã«ãéãéã«ç¨ããããiconvéæ¹åãªã®ãæ°ã«ãªãã
my ${ cc4sheet } = qw[ Shift_JIS cp932 ] [1]; # ã·ã¼ãåã®æååã®ãæåã³ã¼ã夿ã«ç¨ããã
my ${ cc4cell } = qw[ ms932 cp932 Shift_JIS ] [1] ; # åã»ã«ã®æååã®ãæåã³ã¼ã夿ã«ç¨ããããã¼ãåã丸æ°åãå
¨è§ãã¤ãã³ãã¤ãã¹ã§..
scripts/xlsx2tsv view on Meta::CPAN
exit ;
sub main () {
my $converter = Text::Iconv -> new ("utf-8", ${ cc4iconv } ); # 1251 ---> 932 (shift_jis)
my $excel = Spreadsheet::XLSX -> new ( $filename , $converter ) ; # (1)
my @sheets = @{ $excel ->{ Worksheet } } ; # (2)
# ã·ã¼ãã®ææ°ãåãåºã
$o{d} //= '' ;
${ sheet_num } = @sheets ;
do { say scalar @sheets ; exit if ! defined $o{s} } if $o{d} =~ m's'i ;
## ã¾ãã·ã¼ããåãåºãã-s ãç¡ããã°ã·ã¼ãåä¸è¦§ãåå¾ãã¦ããã«çµäºã
binmode STDOUT, ${ cc4out } ; # ãã®åã¯$filenameã®æ ¼ç´ããæããå¾ãã«æ¥ãã
$o{s} = $o{s} || do { say for (GREEN 'The sheet names:'), map { decode ${ cc4sheet } , $_ -> { Name } } @sheets ; exit } ;
my $s = $sheets [ $o{s} - 1 ] ; # ããã·ã¼ãã表ããªãã¸ã§ã¯ã
${ sheet_name } = decode ${ cc4sheet } , $s -> { Name } ;
# -dã®ãã©ã¡ã¼ã¿ã«å¾ã£ã¦ãã¼ãã«ã®è¡ã¨åã®ç¯å²ãåãåºãã
($r1, $r2 , $c1 , $c2 ) = ( $s->{MinRow} , $s ->{MaxRow} , $s -> {MinCol} , $s -> {MaxCol} ) ; # (3)
say $r1+1 , ".." , $r2+1 if $o{d} =~ '1' ; # è¡ç¯å²ã®åºå
say $c1+1 , ".." , $c2+1 if $o{d} =~ '2' ; # åç¯å²ã®åºå
say n2Xcol $c1 , ".." , n2Xcol $c2 if $o{d} =~ m'A'i ; # -Aæå®ã§ãåç¯å²ã A,..,Z,AA..ZZã§æç®ãã¦è¡¨ç¤º
exit if $o{d} =~ m/0/ || defined $o{p} && $o{p} eq '0' ;
# ã»ã«ã®ä¸èº«ãåãåºã
for my $r ( $r1 .. $r2 ) {
my @line = map { nl2some decode ${ cc4cell } , $_ -> { Val } } map $s->{Cells}[$r][$_] , $c1 .. $c2 ; # (4)
say join "\t" , map $_ // '' , @line ;
}
}
## ãã«ãã®æ±ã
sub VERSION_MESSAGE {}
sub HELP_MESSAGE {
use FindBin qw[ $Script ] ;
$ARGV[1] //= '' ;
open my $FH , '<' , $0 ;
while(<$FH>){