App-Bin4TSV
view release on metacpan or search on metacpan
scripts/chars2code view on Meta::CPAN
#!/usr/bin/perl
use 5.014 ; use warnings ;
use Getopt::Std ; getopts ":01bnuw" , \my%o ;
use Term::ANSIColor qw[ :constants color ] ; $Term::ANSIColor::AUTORESET = 1 ;
use utf8 ;
binmode STDOUT , ":utf8" ; #if ! $o{b} ;
use Encode qw [ decode_utf8 encode_utf8 ] ;
use FindBin qw [ $Script ] ;
my $sdt = sprintf '%04d-%02d-%02d %02d:%02d:%02d', do{my @t= @{[localtime]}[5,4,3,2,1,0]; $t[0]+=1900; $t[1]++; @t } ;
eval "use Encode::JP qw[decode encode];1" or die "Encode::JP cannot be loaded, so -w does not work. ($Script, $sdt)\n" if $o{w} ;
# my $utf8 = Encode::find_encoding('utf8') ;
sub decode ($) ;
sub encode ($) ;
* decode = $o{b} ? sub ($) { $_[0] } : $o{w} ? sub ($) { Encode::JP::decode('cp932',$_[0]) } : * decode_utf8 ;
#* encode = $o{b} ? sub ($) { $_[0] } : * encode_utf8 ;
scripts/colchop view on Meta::CPAN
* 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// ;
scripts/colsummary view on Meta::CPAN
$o{g} = 6 if ( ! defined $o{g} ) ; # åãåºãæ°
$| = 1 if $o{'!'} ;
* decode = $o{u} ? * decode_utf8 : sub ($){ $_[0] } ; #* encode = $o{u} ? * encode_utf8 : sub ($){ $_[0] } ;
$o{'#'} = decode ( $o{'#'} ) if defined $o{'#'} ;
my %fOut = (
j => [ map {UNDERLINE decode($_)} qw[åçªå· å¤ã®ç°ãªã æ°å¤åå¹³å åå å¤ã®ç¯å² æé »å¤ æé »å¤ã®åº¦æ° ..ãã¼ã«ã®åº¦æ°(éãªã) æ¡æ°ç¯å² ] ] ,
e => [ map {UNDERLINE $_ } qw[ cpos diff ave. name range frequent frequency ..lower(x_mul) digits] ] ) ;
binmode *STDOUT , ':utf8' if $o{u} ;
alarm $sec ;
push @ARGV , '-' unless @ARGV ; # æ¨æºå
¥åã®è¿½å
& eachFile ( $_ ) for @ARGV ;
exit 0 ;
sub eachFile ( $ ) {
sub colnames( $ ) ; # -=ã®æã«å
é è¡ã®æ
å ±ãåãåºã
sub filePinfo ; # ãã¡ã¤ã«æ¯ã®2次æ
å ±(ä¸è¡ãµããª)
sub ColFreq ( $$ ) ; # 第ï¼å¤æ°ã¯ãã¡ã¤ã«ãã³ã㫠第ï¼å¤æ°ã¯åç
§ ; ååã®å¤ã®åå¸ãåãåºã
my $FH = do { my $t = *STDIN if $_[0] eq '-' ; open $t, '<', $_[0] if!$t ; binmode $t , ':gzip(gzip)' if $o{z} ; $t } ; # ãã¡ã¤ã«ãã³ãã«ã®åå¾
$rl = 0 ;
my @colnames = colnames $FH if $o{'='} ;
my $maxCols = ColFreq $FH, my $colvals ; #my $colvals ; ååã®åãã¼ã¿å¤ã®åº¦æ°ãéè¨;$colvals->[åçª-1]{ãã¼ã¿å¤}=度æ°
close $FH ;
AlignOut @{ $fOut{$o{j}?'j':'e'} } if 0 ne ($o{0}//'') ;
defined $colvals->[$_] and ColStat $colvals->[ $_ ] , $colnames[$_] for 0 .. $maxCols - 1 ; # ãªãã·ã§ã³ -0 ã«ããå
¨ã¦ã®å¤ãé¤å¤ããããã¨ã¯èµ·ããããã
filePinfo ;
}
scripts/csel view on Meta::CPAN
@out = @tmp ; #print join ", " , map ( $_+1, @out) , "\n" ;
}
return [ @out ] ;
}
# åè¡ã®åºåå¦çã sCols颿°ãå¼ã³åºãã¦ã鏿ããã-n ã§åçªå·ãä»ããã
sub line ( ) {
chomp ;
$_ = decode_utf8 ( $_ ) if $isep eq '' ; # å
¥åãSTDINã¨ã¯éããªãã®ã§ binmode ã使ãã decode_utf8
my @F = split /$isep/ , $_ , $split_limit ; #use Data::Dumper ; print scalar @F , Dumper [@F];
@F = map { $_ + 1 . ":$F[$_]" } 0 .. $#F if $o{n} ; # -n ã§åçªå·ãã³ãã³ãä»ãã¦åºå
push @F , $emp ; # $F[-1] ã§åç
§ãã
print join ( "$osep" , @F [ @{ sCols $#F } ] ) , "\n" ;
}
# main
sub main {
binmode STDOUT ,":utf8" if $isep eq '' ; # æååä½ã§å¦çããå ´åãutf8ã¨ãã¦ã®æ±ããããã
# ä¸è¡ç®ã㤠-= ãæå®ãããå ´åã®å¦ç
if ( $o{'='} ) {
$_ = <> ;
chomp ;
my $c = 0 ;
$colNamePos { $_ } = ++ $c for split /$isep/ , $_ , $split_limit ; # <-- å岿ååã«æ°ãã¤ããã
$cream{ $_ } = [ expand $o{$_} ] for qw/p d h t/ ;
line ; # <-- -
}
else {
scripts/csv2tsv view on Meta::CPAN
sub escrev {
my $bef = $_[0] ;
my $aft = $_[1] ;
s/(?<!$o{e})$bef/$aft/g ; # å¦å®çå¾èªã¿ã¯ (?<!pattern)ã; è¯å®çå¾èªã¿ã¯ (?<=pattern)
s/$o{e}$bef/$bef/g ; #print STDERR BLUE "$o{e}, $o{n}\n" ;
}
}
sub main ( ) {
binmode * STDOUT , ":utf8" ; # Necessry because Text::CSV_XS decodes UTF8 input.
binmode * STDERR , ":utf8" ; # Necessry because Text::CSV_XS decodes UTF8 input.
my $linepos = 1 ; # CSV ã§èªã¿è¾¼ãã§ããã®ã§ã$. ã¯2以ä¸å¢ãããã¨ããããèªã¿åã度ã«ã $linepos ãã $. è¡ç®ã¾ã§ã¨èªèããããã
my %cols ; # ä½åã®åãä½è¡ãæã£ã¦ãããã表ãã3åã®è¡ã120è¡åå¨ããããªã©ã表ãã
our $csv = Text::CSV_XS -> new ( { binary => 1 , sep_char => $o{s} , auto_diag => 1 } ) ; # if binary => 0 then when "\n" is included in a cell it cause trouble.
push my @trans , grep {$_} do { [ "\t" , $o{t} ] if defined $o{t} } , do { [ "\n" , $o{n} ] if defined $o{n} } ; # æååç½®æã®æå®ã
my @warnstr ; # è¦åå¯¾è±¡ã®æååãæ¹è¡ãã¿ãæåãªã©
my @escape ; # ã¨ã¹ã±ã¼ãå¯¾è±¡ã®æåå
unless ($o{Q}) {
push @warnstr , $o{t} if defined $o{t} ;
push @warnstr , $o{n} if defined $o{n} ;
scripts/digitdemog view on Meta::CPAN
use Term::ANSIColor qw/:constants color/ ; $Term::ANSIColor::AUTORESET = 1 ;
use Time::HiRes qw/sleep usleep gettimeofday tv_interval/ ; # 5.7.3ãã
use Encode ;
#$SIG{INT} = sub { & info ; exit 130 } ;
my $time0 = [ gettimeofday ] ;
my ${binFlag} = 1 if defined $o{u} && $o{u} eq '0' ;
$o{'$'} //= 'end' ; # æåã®çµç«¯ã表ãè¨å·
$o{p} //= '' ; # æåãåãåãããã¿ã¼ã³ãæ£è¦è¡¨ç¾
binmode STDOUT, 'utf8' unless $binFlag ;
sub main () ;
* main = $o{L} ? * bylen : $o{S} ? * blanks : * normal ; # <-- mainã®å®ç¾©ã¯ããã§ããã
& main ;
exit 0 ;
# ã©ããªç¨®é¡ã®ç©ºç½ããæ°ããã¢ã¼ã:
sub blanks ( ) {
my $header = <> if $o{'='} ;
my %seen ; # åãè¡ãæ¥ããã©ããã®å¤å®ã«ä½¿ããæ°ãéè¨ãããã
scripts/expskip view on Meta::CPAN
sub traverse ( ) {
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 ;
scripts/gzpaste view on Meta::CPAN
exit 0 ;
## 以ä¸ã¯é¢æ°ã
sub files_open ( ) {
$SIG{INT} = sub { closing ; exit 130 } ;
for ( 0 .. $argnum - 1 ) {
if ( ! $o{g} ) {
open $FH [ $_ ] , '<' , $ARGV [ $_ ] ; # "<:gzip(gzip)"
binmode $FH [ $_ ] , ':gzip(gzip)' ; # < -- é度æ¯è¼ãããã
}
else {
open $FH [ $_ ] , '-|' , 'gzcat' , $ARGV[$_] ; # open $FH, "gzcat '$ARGV[$_]' |" ããè¯ãã¨æã£ã
}
}
}
sub closing ( ) {
# ãã¡ã¤ã«ãéããã
close $_ for @FH ;
scripts/samesize view on Meta::CPAN
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} ;
my %seenD ; # æ¢ã«è¦ãããã·ã¥ãã¤ã¸ã§ã¹ãå¤
for ( @files ) {
my @t3 = (stat $_)[8,9,10] ; # <-- stat ã«ããã®ã便å®ä¸ã®å¤æ´
my $ctx = Digest::MD5->new;
unless ($o{0}){
open my $FH, '<', $_ or die "Can't open '$_': $!";
binmode $FH ;
$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 ) , $_ ) ;
scripts/wc-l view on Meta::CPAN
if ( ! $o{g} ) {
open $FH , '<' , $_[0]
} else {
open $FH , '-|' , 'gzcat' , $_[0] ;
#open $FH [ $_ ] , '-|' , 'gzcat' , $ARGV[$_] ; # open $FH, "gzcat '$ARGV[$_]' |" ããè¯ãã¨æã£ã
}
} else {
$FH = * STDIN
} ;
binmode $FH , ":gzip(gzip)" if $o{z} ;
my $header = <$FH> if $o{'='} ; # <-- ä¸å¿æå³ã¯ããã-+ ã¹ã¤ãããªãã·ã§ã³ã§å¯¾å¿ã§ããªãã?
my $ret = lineNum $FH ;
out1line ( $ret , $fn , $time0 ) ;
return $ret ;
}
# ãã¡ã¤ã«ãã³ãã©ããè¡æ°ãè¿ãã
sub lineNum ( $ ) {
my $last_count = $. ;
scripts/xlsx2tsv view on Meta::CPAN
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' ;
( run in 0.350 second using v1.01-cache-2.11-cpan-95122f20152 )