ååããã£ã«ã¿ã³ãã³ããawkãã«ã¯ãgrepãããsedãã«ã¯ãªããåãã®æŠå¿µãããã®ã§ã䟿å©ã«ããŒã¿ãå©çšã§ãããšããããšã玹ä»ãããããã«ãawkã¯sedãããããã°ã©ãã³ã°æ§ãé«ãããã现ããåŠçãè¡ããããã«ãªã£ãŠãããä»åã¯ãããããåŠçãè¡ãéã®åºæ¬ãšãªãã倿°ãã«ã€ããŠåãäžããããšæããå©çšãããµã³ãã«ããŒã¿ã¯ååãæ¥æ¬éµæ¿ã°ã«ãŒãã®ãµã€ãããããŠã³ããŒãã»å å·¥ããéµäŸ¿çªå·ã®ããŒã¿ã ã
倿°ã䜿ã£ãŠã¿ã
åå玹ä»ããã¹ã¯ãªããã«ãå°ãæ©èœè¿œå ãããã®ã次ã«ç€ºãã
#!/bin/sh
key="$1"
awk '
BEGIN {
i=0
printf("====================================================\n")
printf("\t\täœæããéµäŸ¿çªå·ãæ€çŽ¢\n")
printf("====================================================\n\n")
printf("æ€çŽ¢ããŒã¯ãŒã: %s\n\n","'$key'")
printf("åè£\téµäŸ¿çªå· äœæ\n")
}
$2$3$4~/'$key'/ {
++i;
printf("%03d\t%d (%s%s%s)\n",i,$1,$2,$3,$4);
}
END {
printf("\nããç·åè£æ°\t%d\n",i)
}
' KEN_ALL_ROME.SSV
ãã®ã¹ã¯ãªããã§ã¯ãããããšããã¿ã«ãããéšåããBEGINãããã³ãENDããšãããã¿ãŒã³ã®ã¢ã¯ã·ã§ã³ã§åºåããŠãããæ³šç®ããŠã»ããã®ã¯ãBEGINã®ãªãã®ãi=0ããšããèšè¿°ã ã
awkã§ã¯å€æ°ã宣èšããå¿ èŠããªãã®ã ããããã§ã¯ããããããããã«BEGINã®ãªãã§å€æ°iã䜿ãããšãã0ãä»£å ¥ããåŠçããããããšã§æç€ºçã«èšè¿°ããŠãããawkã®å€æ°ã¯ã°ããŒãã«ãªã¹ã³ãŒããæã€ã®ã§ãBEGINã§å®£èšããïŒããã«èŠããŠããïŒãã®ã§ããã»ãã®ãã¿ãŒã³ã«äžèŽããã¢ã¯ã·ã§ã³éšåã§å©çšã§ããããå€ãåãã«ãªã£ãŠããã
ãããå®è¡ãããšã次ã®ããã«ãªãã
% ./search_zip_1 次 é
====================================================
äœæããéµäŸ¿çªå·ãæ€çŽ¢
====================================================
æ€çŽ¢ããŒã¯ãŒã: 次é
åè£ éµäŸ¿çªå· äœæ
001 9811526 (å®®åçè§ç°åžç¥æ¬¡é)
002 9610091 (çŠå³¶ççœæ²³åžåŒ¥æ¬¡é窪)
003 9640808 (çŠå³¶çäºæ¬æŸåžæšè€æ¬¡éå
)
004 3212116 (æ æšçå®éœå®®åžåŸ³æ¬¡éçº)
005 9501433 (æ°æœçæ°æœåžãååºæ¬¡éå³ãšéèé)
006 9591943 (æ°æœçé¿è³éåžæ¬¡éäžž)
007 9391802 (å¯å±±çåç ºåžåéïŒæ¬¡éäžžïŒ)
008 9188227 (çŠäºççŠäºåžæ¬¡éäžžçº)
009 9120067 (çŠäºç倧éåžå³è¿æ¬¡é)
010 9190745 (çŠäºçãããåžæ¬¡éäžž)
011 4313304 (éå²¡çæµæŸåžã倩ç«åºæ¬¡éå
«æ°ç°)
012 6760063 (å
µåº«çé«ç åžé«ç çºã次éå©çº)
013 6408444 (åæå±±çåæå±±åžæ¬¡éäžž)
014 7711702 (埳島çé¿æ³¢åžé¿æ³¢çºã倧次é)
015 7992646 (æåªçæŸå±±åžç¥æ¬¡éçº)
016 7871551 (é«ç¥çåäžååžäœæ¬¡é)
017 8140165 (çŠå²¡ççŠå²¡åžãæ©è¯åºæ¬¡éäžž)
018 8900062 (鹿å
å³¶ç鹿å
å³¶åžäžæ¬¡é)
ããç·åè£æ° 18
%
远å ããã®ã¯ãåºåããè¡ããšã«å€æ°ãiãã®å€ãå¢ãããŠãã£ãŠãäœä»¶äžèŽããã®ããèšé²ããŠããæ©èœã ãawkã¯æç¶ãåã®ããã°ã©ãã³ã°èšèªããèŠããšãåäœã®ä»çµã¿ãšã¹ã³ãŒãããããããã«ãããããããªããããšã«ãããããªæãã§å€æ°ã䜿ãããšãã§ããããã«ãªã£ãŠããã
é åã䜿ã£ãŠã¿ã
倿°ã ãã§ãªããawkã§ã¯ãé åãã䜿çšã§ãããã€ã¢èãã³ãŒãã«ãªãããäžèŽãã察象ãéœéåºçããšã«éèšããŠãã©ã®éœéåºçã«ã©ã®çšåºŠäžèŽããã®ãã調ã¹ãæ©èœã远å ããŠã¿ãããããã§ã¯ã次ã®ããã«èšè¿°ããã
#!/bin/sh
key="$1"
awk '
BEGIN {
i=0
n[0]="æç¥ç"; n[1]="鿣®ç"; n[2]="ç§ç°ç"; n[3]="ç³å·ç";
n[4]="èšåç"; n[5]="岩æç"; n[6]="æåªç"; n[7]="倧åç";
n[8]="倧éªåº"; n[9]="岡山ç"; n[10]="æ²çžç"; n[11]="éŠå·ç";
n[12]="鹿å
å³¶ç"; n[13]="ç¥å¥å·ç"; n[14]="å²éç"; n[15]="京éœåº";
n[16]="çæ¬ç"; n[17]="矀銬ç"; n[18]="é«ç¥ç"; n[19]="åŒçç";
n[20]="äœè³ç"; n[21]="æ»è³ç"; n[22]="é岡ç"; n[23]="å³¶æ ¹ç";
n[24]="åèç"; n[25]="æ±äº¬éœ"; n[26]="埳島ç"; n[27]="æ æšç";
n[28]="é³¥åç"; n[29]="å¯å±±ç"; n[30]="é·åŽç"; n[31]="é·éç";
n[32]="å¥è¯ç"; n[33]="æ°æœç"; n[34]="å
µåº«ç"; n[35]="åºå³¶ç";
n[36]="çŠäºç"; n[37]="çŠå²¡ç"; n[38]="çŠå³¶ç"; n[39]="åæµ·é";
n[40]="äžéç"; n[41]="å®®åç"; n[42]="å®®åŽç"; n[43]="山圢ç";
n[44]="å±±å£ç"; n[45]="山梚ç"; n[46]="åæå±±ç";
printf("====================================================\n")
printf("\t\täœæããéµäŸ¿çªå·ãæ€çŽ¢\n")
printf("====================================================\n\n")
printf("æ€çŽ¢ããŒã¯ãŒã: %s\n\n","'$key'")
printf("åè£\téµäŸ¿çªå· äœæ\n")
}
$2$3$4~/'$key'/ {
++i;
printf("%03d\t%d (%s%s%s)\n",i,$1,$2,$3,$4);
if ($2=="æç¥ç") t[0] += 1;
else if ($2=="æç¥ç") t[1] += 1;
else if ($2=="鿣®ç") t[2] += 1;
else if ($2=="ç§ç°ç") t[3] += 1;
else if ($2=="ç³å·ç") t[4] += 1;
else if ($2=="èšåç") t[5] += 1;
else if ($2=="岩æç") t[6] += 1;
else if ($2=="æåªç") t[7] += 1;
else if ($2=="倧åç") t[8] += 1;
else if ($2=="倧éªåº") t[9] += 1;
else if ($2=="岡山ç") t[10] += 1;
else if ($2=="æ²çžç") t[11] += 1;
else if ($2=="éŠå·ç") t[12] += 1;
else if ($2=="鹿å
å³¶ç") t[13] += 1;
else if ($2=="ç¥å¥å·ç") t[14] += 1;
else if ($2=="å²éç") t[15] += 1;
else if ($2=="京éœåº") t[16] += 1;
else if ($2=="çæ¬ç") t[17] += 1;
else if ($2=="矀銬ç") t[18] += 1;
else if ($2=="é«ç¥ç") t[19] += 1;
else if ($2=="åŒçç") t[20] += 1;
else if ($2=="äœè³ç") t[21] += 1;
else if ($2=="æ»è³ç") t[22] += 1;
else if ($2=="é岡ç") t[23] += 1;
else if ($2=="å³¶æ ¹ç") t[24] += 1;
else if ($2=="åèç") t[25] += 1;
else if ($2=="æ±äº¬éœ") t[26] += 1;
else if ($2=="埳島ç") t[27] += 1;
else if ($2=="æ æšç") t[28] += 1;
else if ($2=="é³¥åç") t[29] += 1;
else if ($2=="å¯å±±ç") t[30] += 1;
else if ($2=="é·åŽç") t[31] += 1;
else if ($2=="é·éç") t[32] += 1;
else if ($2=="å¥è¯ç") t[33] += 1;
else if ($2=="æ°æœç") t[34] += 1;
else if ($2=="å
µåº«ç") t[35] += 1;
else if ($2=="åºå³¶ç") t[36] += 1;
else if ($2=="çŠäºç") t[37] += 1;
else if ($2=="çŠå²¡ç") t[38] += 1;
else if ($2=="çŠå³¶ç") t[39] += 1;
else if ($2=="åæµ·é") t[40] += 1;
else if ($2=="äžéç") t[41] += 1;
else if ($2=="å®®åç") t[42] += 1;
else if ($2=="å®®åŽç") t[43] += 1;
else if ($2=="山圢ç") t[44] += 1;
else if ($2=="å±±å£ç") t[45] += 1;
else if ($2=="山梚ç") t[46] += 1;
else if ($2=="åæå±±ç") t[47] += 1;
}
END {
printf("\nçå¥éèš\n")
for (j=0; j<47; j++)
if (0 != t[j])
printf("%sãã\t%dä»¶\n",n[j],t[j])
printf("\nç·åè£æ°\t%dä»¶\n",i)
}
' KEN_ALL_ROME.SSV
äžèšã®ã³ãŒãã§ã¯ãŸããBEGINã®ã¢ã¯ã·ã§ã³ã§é åã«éœéåºçåãä»£å ¥ããŠããããããŠãæ¯èŒåŠçãã¡ã€ã³ã®ã¢ã¯ã·ã§ã³ã®ãªãã§è¡ããäžèŽãããã«ãŠã³ãã¢ãããããšããæµãã ãã芧ã®ãšãããã«ãŠã³ãã«ã¯ãtããšããé åããããªã䜿ãå§ããŠãããawkã§ã¯å®£èšãäžèŠãªã®ã§ãããããæžãæ¹ãã§ããã®ã ã
éèšããçµæã¯ãENDã®ã¢ã¯ã·ã§ã³ã§åºåããŠããããã¡ããã¹ãã£ãšããã€ã¢ã³ãŒãã«ããŠå¹³ã¹ã£ããæžããŠãããããšæã£ãããããŸãã«ã³ãŒããé·ããªãã®ã§ãããŠããããforæ§æã䜿ã£ãŠãµã¯ããšãŸãšããŠãããã¡ã€ã³ã®ã¢ã¯ã·ã§ã³ã®ãªããforæ§æã䜿ããšåæ§ã«çããªãã®ã ããããã¯ãŸãå¥ã®æ©äŒã«åãäžãããšãããããã®ã³ãŒããå®è¡ãããšã次ã®ããã«ãªãã
% ./search_zip_2 次é
====================================================
äœæããéµäŸ¿çªå·ãæ€çŽ¢
====================================================
æ€çŽ¢ããŒã¯ãŒã: 次é
åè£ éµäŸ¿çªå· äœæ
001 9811526 (å®®åçè§ç°åžç¥æ¬¡é)
002 9610091 (çŠå³¶ççœæ²³åžåŒ¥æ¬¡é窪)
003 9640808 (çŠå³¶çäºæ¬æŸåžæšè€æ¬¡éå
)
004 3212116 (æ æšçå®éœå®®åžåŸ³æ¬¡éçº)
005 9501433 (æ°æœçæ°æœåžãååºæ¬¡éå³ãšéèé)
006 9591943 (æ°æœçé¿è³éåžæ¬¡éäžž)
007 9391802 (å¯å±±çåç ºåžåéïŒæ¬¡éäžžïŒ)
008 9188227 (çŠäºççŠäºåžæ¬¡éäžžçº)
009 9120067 (çŠäºç倧éåžå³è¿æ¬¡é)
010 9190745 (çŠäºçãããåžæ¬¡éäžž)
011 4313304 (éå²¡çæµæŸåžã倩ç«åºæ¬¡éå
«æ°ç°)
012 6760063 (å
µåº«çé«ç åžé«ç çºã次éå©çº)
013 6408444 (åæå±±çåæå±±åžæ¬¡éäžž)
014 7711702 (埳島çé¿æ³¢åžé¿æ³¢çºã倧次é)
015 7992646 (æåªçæŸå±±åžç¥æ¬¡éçº)
016 7871551 (é«ç¥çåäžååžäœæ¬¡é)
017 8140165 (çŠå²¡ççŠå²¡åžãæ©è¯åºæ¬¡éäžž)
018 8900062 (鹿å
å³¶ç鹿å
å³¶åžäžæ¬¡é)
çå¥éèš
倧åçãã 1ä»¶
ç¥å¥å·çãã 1ä»¶
åŒççãã 1ä»¶
å³¶æ ¹çãã 1ä»¶
æ æšçãã 1ä»¶
é³¥åçãã 1ä»¶
é·åŽçãã 1ä»¶
å
µåº«çãã 2ä»¶
åºå³¶çãã 1ä»¶
çŠå²¡çãã 3ä»¶
çŠå³¶çãã 1ä»¶
åæµ·éãã 2ä»¶
å®®åŽçãã 1ä»¶
ç·åè£æ° 18ä»¶
%
ããããåºåãgrepã³ãã³ããšsedã³ãã³ãã ãã§åŸãããšãããšãçžåœç ©éã«ãªãã®ã ããawkã³ãã³ããªããã®ãšããç°¡åã ã
äŸãã°ãååãä»åãã£ããããªããšã¯ãã¹ãã¬ããã·ãŒãã¢ããªã±ãŒã·ã§ã³ãUI/UXäžäœåã®ããŒã¿ããŒã¹é¢šã¢ããªã±ãŒã·ã§ã³ã䜿ã£ãŠãå®çŸã§ãããã ãããã£ã«ã¿ã³ãã³ãã®ç䟡ã¯ãããŒã¿æ°ãå€ããªã£ãŠãããšãã«çºæ®ãããã®ã ãããŒã¿ãã¡ã€ã«ã®ãµã€ãºã100MBã1GBãšå¢ããŠãããšãã¢ããªã±ãŒã·ã§ã³ã§ã¯åäœããªããããŸãã¯åãããã£ããããããŠå®çšã«å ªããªããªã£ãŠããŸãã
ããããã£ã«ã¿ã³ãã³ããªãã°ãçµæ§ãµã¯ãµã¯ãããããã¡ãããã³ãã³ãã䞊ã¹ãé åºãæå®ããå 容ã§å®è¡é床ã¯ç°ãªã£ãŠããããäœãããã«ããŠãæ°å以äžåŸ ããªããã°ãªããªãã¢ããªã«æ¯ã¹ããšã軜ãããŠãããããªãã»ã©ã ããšã«ãã䟿å©ãªã®ã§ãã²ãšãç¿åŸããŠã»ããã³ãã³ãã§ããã