2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ๅคงใใชๆ•ฐใซไธ‹ใฎไฝใ‹ใ‚‰3ๆกใ”ใจใซ่‰ฒใ‚’ใคใ‘ใ‚‹

2
Last updated at Posted at 2016-04-05

ไฝ•ๆกใ‚‚ใ‚ใ‚‹ๆ•ฐใ‚’ไธ€็žฌใงๆŠŠๆกใ™ใ‚‹ใซใฏใฉใ†ใ—ใŸใ‚‰่‰ฏใ„?

ไฝ•ใ‚ฎใ‚ฌใƒใ‚คใƒˆใ‚‚ใ‚ใ‚‹ใ‚ˆใ†ใชๅคงใใชใƒ‡ใƒผใ‚ฟใ‚’ใ€ใ‚ณใƒžใƒณใƒ‰ใƒฉใ‚คใƒณไธŠใงๆ‰ฑใฃใฆใ„ใ‚‹ใจใ€ๅคงใใชๆกๆ•ฐใฎๆ•ฐใ‚’็›ฎใซใ™ใ‚‹ใ“ใจใซใชใ‚‹ใ€‚ใ•ใฆใ€8ๆกใ‚‚9ๆกใ‚‚ใ‚ใ‚‹ๆ•ฐใ‚’ใฉใ†ใ‚„ใฃใŸใ‚‰ไธ€็›ฎใงไฝ•ๅƒไธ‡ใจใ‹ไฝ•ๅ„„ใจใ‹ๅˆ†ใ‹ใ‚‹ใ ใ‚ใ†ใ‹๏ผŸๅ ดๅˆใซใ‚ˆใฃใฆใฏใ€ๅ…†ใ€ไบฌๅ˜ไฝใฎๆ•ฐใ‚‚็พใ‚Œใ‚‹ใ“ใจใ‚‚ใ‚ใ‚‹ใ ใ‚ใ†ใ€‚SQLใฎ็ตๆžœใงใ‚ใ‚Œใ€่กŒๆ•ฐใ‚’ๆ•ฐใˆใ‚‹ wc -l ใฎๅ‡บๅŠ›ใงใ‚ใ‚Œใ€ๅคงใใชๆ•ฐใ‚’็›ฎใซใ™ใ‚‹ใ“ใจใŒ่ฟ‘ๅนดๅคšใ„ใ€‚ใ“ใฎๅ•้กŒใซ้ฉๅˆ‡ใซๅฏพๅ‡ฆใ™ใ‚‹ๆ–นๆณ•ใฏใพใ ใ‚ใพใ‚Šไธ–ใซ็Ÿฅใ‚‰ใ‚Œใฆ็„กใ„ใ‹ใ‚‚ใ—ใ‚Œใชใ„ใฎใงใ€่‡ชๅˆ†ใง่งฃๆฑบ็ญ–ใ‚’่€ƒใˆใฆใฟใŸใ€‚

pic1.png

ใ‚ณใƒณใƒžใง็„กใใฆ่‰ฒใ‚’ไป˜ใ‘ใŸใ‚‰่‰ฏใ„ใจๆ€ใ‚ใ‚Œใ‚‹ใ€‚

pic2.png

ไธŠ่จ˜ใ‚’ๅฎŸ็พใ™ใ‚‹ใƒ—ใƒญใ‚ฐใƒฉใƒ 

ไธŠ่จ˜ใฏใ€0ใ‹ใ‚‰9ใพใงใฎๆ•ฐๅญ—ใŒไธฆใ‚“ใงใ„ใ‚Œใฐใ€ใใฎไธ‹ใฎไฝใ‹ใ‚‰3ๆกใšใค่‰ฒใ‚’ไป˜ใ‘ใฆใ„ใ‚‹ใ€‚ใชใŠใ€ใ‚ณใƒณใƒžใงๅŒบๅˆ‡ใ‚‹ๆ–นๆณ•ใ‚‚่€ƒใˆใ‚‰ใ‚Œใ‚‹ใŒใ€ๆ•ฐใจใ—ใฆใฎๆ„ๅ‘ณใฎใ‚ใ‚‹ใจใ“ใ‚ใ ใ‘ใ‚ณใƒณใƒžใ‚’ๆŒฟๅ…ฅใ—ใ‚ˆใ†ใซใ‚‚ใชใ‹ใชใ‹ใ†ใพใใ„ใ‹ใชใ„ใ€‚ๆ•ฐๅญ—ใฎไธฆใณใ ใ‘ใ‚’ๅ˜็ด”ใซ3ๆกใ”ใจใซใ‚ณใƒณใƒžใงๅŒบๅˆ‡ใ‚‹ใจๆ„ๅ‘ณใฎใชใ„ๆ‰€ใซใ‚ณใƒณใƒžใŒๅ…ฅใ‚‹ใ—ใ€ใใ—ใฆ้›ฃใ—ใ„ใ‚ขใƒซใ‚ดใƒชใ‚บใƒ ใ‚’่€ƒใˆๅ‡บใ—ใŸใ‚‰ใ‚ญใƒชใŒ็„กใ„ใ ใ‚ใ†ใ€‚ๆ—ฅไป˜ใ‚’ๆ—ฅไป˜ใจใ†ใพใๅˆคๆ–ญใ—ใฆใ€ใ„ใคใงใ‚‚้ฉๅˆ‡ใช่จ˜ๅทใ‚’ไป˜ๅŠ ใงใใ‚‹็ฐกๅ˜ใชๆ–นๆณ•ใฏใ‚ใ‚‹ใ ใ‚ใ†ใ‹๏ผŸใใ‚‚ใใ‚‚ๅคงๆฆ‚ใฎๅ ดๅˆใ€ๆ–‡ๅญ—้ ˜ๅŸŸใฎใƒฌใ‚คใ‚ขใ‚ฆใƒˆใŒๅดฉใ‚ŒใŸใ‚Šใ—ใฆใ€่ชญใฟใซใใใชใ‚‹ใ€‚

pic3.png

ใ‚„ใฃใฑใ‚Šไธ‹ใฎๅ›ณใฎใ‚ˆใ†ใซ่‰ฒใ‚’ไป˜ใ‘ใŸๆ–นใŒ่‰ฏใ„ใ ใ‚ใ†ใ€‚ใƒ•ใ‚กใ‚คใƒซๅใฎไธญใซๆ•ฐใŒ็พใ‚Œใฆใใ“ใซ่‰ฒใŒใคใ„ใฆใ‚‚ใ€ใ‚ใพใ‚Šไธ่‡ช็„ถใงใฏใชใ„ใ€‚

pic4.png

ไธŠ่จ˜ใฎ็”ปๅƒใฎใ‚ˆใ†ใช่‰ฒใ‚’ไป˜ใ‘ใ‚‹ใ“ใจใ‚’ๅฎŸ็พใ™ใ‚‹ใƒ—ใƒญใ‚ฐใƒฉใƒ ใฏใ€ใ“ใฎ่จ˜ไบ‹ใฎๆœ€ๅพŒใซใ‚ใ‚‹Perlใƒ—ใƒญใ‚ฐใƒฉใƒ ใงใ‚ใ‚‹ใ€‚
ใ“ใฎใƒ—ใƒญใ‚ฐใƒฉใƒ ใซใคใ„ใฆใฏใ€Macใฎใ‚ฟใƒผใƒŸใƒŠใƒซใงใ‚‚ใ€Windowsใฎใ‚ณใƒžใƒณใƒ‰ใƒ—ใƒญใƒณใƒ—ใƒˆใงใ‚‚Cygwinใงใ‚‚ใ€Amazon Linux ใงใ‚‚ใ†ใพใ่‰ฒใŒไป˜ใใ“ใจใ‚’ๆ—ขใซ็ขบใ‹ใ‚ใฆใ‚ใ‚‹ใ€‚ใƒ—ใƒญใ‚ฐใƒฉใƒ ใฏไธ‹่จ˜ใฎใ‚ˆใ†ใซใชใ‚‹ใ€‚ใƒ—ใƒญใ‚ฐใƒฉใƒ ๅใฏๅˆใ‚ใฎ้ ƒใฏใ€color, colors, coloring ใจใ„ใ‚ใ„ใ‚ๅค‰ใˆใŸใŒใ€ไปŠใฎๆ‰€ใฏ colorplus ใจใ—ใฆใ„ใ‚‹ใ€‚

ใชใŠใ€ไธ‹่จ˜ใฎใƒ—ใƒญใ‚ฐใƒฉใƒ ใฏใ€3ๆกใ”ใจใซไธ‹ไฝใ‹ใ‚‰่‰ฒใ‚’ไป˜ใ‘ใ‚‹ใ ใ‘ใงใฏใชใใฆใ€4ๆกใ”ใจใ‚’่‰ฒใ‚’ไป˜ใ‘ใŸใ‚Šใ€่‰ฒใŒใ‚ใฃใŸใ‚‰่‰ฒใ‚’ๆถˆใ™ๆฉŸ่ƒฝใ‚’ไป˜ใ‘ใŸใ‚Šใ€ใ‚ฟใƒ–ใซใ‚ˆใ‚‹ๅŒบๅˆ‡ใ‚Šใง่‰ฒใ‚’ใคใ‘ใŸใ‚Šใ™ใ‚‹ๆฉŸ่ƒฝใŒใ‚ใฃใŸใ‚Šใ™ใ‚‹ใ€‚

colorplus.pl
# !/usr/bin/perl
use 5.014 ; use strict ; use warnings ;  
use Getopt::Std ; getopts "e:l:t:v034,:" , \my%o ; 
use Term::ANSIColor qw/color colored colorstrip/ ;
$o{','} //= "\t" ; 
$| = 1 if $o{v} ;  
my %except ; $except {$_} =1 for split /,/ , $o{e}//'' ;
while ( <> ) { 
	print $_ if $except{$.} ; # ่‰ฒๆƒ…ๅ ฑใฎๆถˆๅŽป
	$_ = colorstrip ($_) if $o{0} ; 
 	$_ = &ColorDigits ($_)  if $o{3} || $o{4} ; 
 	$_ = &ColorTabbing ($_,$o{t})  if $o{t} ; 
 	$_ = &ColorLines ($_,$o{t})  if $o{l} ; 
 	print $_ ;
}
exit 0 ; 

# ๆŒ‡ๅฎšใ•ใ‚ŒใŸๆ•ฐใฎๅˆ—ใฎใ‚ฟใƒ–ใ”ใจใซใ€้’ใ„่ƒŒๆ™ฏ่‰ฒใ‚’ใคใ‘ใ‚‹ใ€‚
sub ColorLines ($$) { 
    $. % $o{l} == 1 ? colored ( $_ , "on_blue" ) : colored ( $_ , "on_black" ) ; 
}

sub ColorTabbing ($$) { 
	chomp ;
	my @F = split /$o{','}/ , $_[0]  ;
	my @out  ;  
	for ( 0..scalar @F -1){
		 push @out,  color( ['on_black','on_blue']->[int($_/$_[1])%2]  ) . $F[$_]  ;
	} 
	return join ($o{','},@out).color('reset')."\n" ;
}

## ๆ•ฐๅญ—ใซ่‰ฒใ‚’ใคใ‘ใ‚‹ใ€‚
sub ColorDigits ($) { 
	my @accum = &wellSplit ( $_[0] ) ; 
	my $outStr = join '' , map { &wellPrint ($_) } @accum ; 
	return $outStr ; 
}

sub wellPrint ($){
	my $outstr = '' ; 
	sub loc ($) {
        my $x=$_[0]-1;
        my $l = $o{3} ? 3 : $o{4} ? 4 : 5 ; # 5ใฏไฝฟใ‚ใชใ„ใ ใ‚ใ†
        ($x-($x% $l ))/$l %3 
        } ; 
	my $str = $_[0] ; 
	if ( $str !~ /^\d/ ) {
		$outstr .=  $_ ; 
		return $outstr ;
	}
	my @wStr = split //, $str ,0  ; 
	for ( -scalar @wStr .. -1 ) { 
		$outstr .= ${[color('cyan'),color('green'),color('yellow')]} [ &loc (-$_) ] . $wStr[$_] ;
	}
	return $outstr.color('white') ;
}

sub wellSplit ($)  { 
	my @wholeStr = split // , $_[0] , -1 ;
	my @accum ;
	my $tmpstr = '' ;  
	my $dflag = 0 ; 
	for ( 0 .. scalar @wholeStr -1 ) { 
		my $c = $wholeStr [ $_ ] ;
		my $dflag0 = $c ge "0" & $c le "9" ; 
		if ( $dflag0 xor $dflag ) { 
		  	push @accum , $tmpstr  if $_ ; 
		  	$tmpstr = $c ;
	  	$dflag = $dflag0 ; 
		} 
		else { 
		  	$tmpstr .= $c ;  
		}
	}
	push @accum, $tmpstr ;
	return @accum ; 
}

sub VERSION_MESSAGE {}
sub HELP_MESSAGE{
    $0=~s|.*/|| ; $ARGV[1] //= '' ;
    while(<DATA>){
        s/\$0/$0/g ;
        print $_ if $ARGV[1] =~ /opt/ ? m/^\ +\-/ : s/^=head1// .. s/^=cut// ; 
    }
    exit 0 ;
}

__END__ 
=encoding utf8

=head1 color.pl

 ่‰ฒ( Term::ANSIColor ) ใซใคใ„ใฆใฎใ„ใ‚ใ„ใ‚ใชใƒฆใƒผใƒ†ใ‚ฃใƒชใƒ†ใ‚ฃใƒผ

 -0 ใงๅ…ฅๅŠ›ใฎ่‰ฒๆƒ…ๅ ฑใ‚’ๆถˆๅŽปใ™ใ‚‹ใ€‚
 -3 ๆ•ฐใ‚’ไธ‹ไฝใ‹ใ‚‰3ๆกใ”ใจใซๅก—ใ‚Šๅˆ†ใ‘ใ‚‹
 -4 ๆ•ฐใ‚’ไธ‹ไฝใ‹ใ‚‰4ๆกใ”ใจใซๅก—ใ‚Šๅˆ†ใ‘ใ‚‹ใ€‚
 -e linenumbers   ใ‚ณใƒณใƒž(,)ๅŒบๅˆ‡ใ‚Šใฎๆ•ฐใ‚’ไธฆในใ‚‹ใจใ€ใใ‚Œใซใ‚ˆใ‚ŠๆŒ‡ๅฎšใ•ใ‚ŒใŸ่กŒใซใคใ„ใฆใฏ่กจ็คบใฏใ™ใ‚‹ใŒ็€่‰ฒใชใฉใฏไฝ•ใ‚‚ใ—ใชใ„ใ€‚
 -l num  :  num่กŒๅ‘จๆœŸใงๆœ€ๅˆใฎ่กŒใซ่ƒŒๆ™ฏใ‚’้’ใใ™ใ‚‹ใ€‚
 -t num ใ‚ฟใƒ–ๅŒบๅˆ‡ใ‚Š num ๅˆ—ใ”ใจใซ้’ใฎ่ƒŒๆ™ฏ่‰ฒใ‚’ใคใ‘ใ‚‹ใ€‚
 -v ๅ‡ฆ็†็ตๆžœใ‚’ใ™ใใซๆ›ธใๅ‡บใ™ใ€‚ใƒใƒƒใƒ•ใ‚กใซ่ฒฏใ‚ใชใ„ใ€‚
 -, str : ๅˆ—ใฎๅก—ใ‚Šๅˆ†ใ‘ใ‚’ใ™ใ‚‹้š›ใซใ€ๅˆ—ใฎๅŒบๅˆ‡ใ‚Šใ‚’ str ใงๆŒ‡ๅฎšใ™ใ‚‹ใ€‚ๆœชๆŒ‡ๅฎšใชใ‚‰ใ€ใ‚ฟใƒ–ๆ–‡ๅญ—ใ€‚

=cut

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?