BUWãã¿ãŒããã«ãšãã¥ã¬ãŒã¿ãŒãConEmuããšçµã¿åããã
ä»åã¯ç«¯æ«ç°å¢ã«ã€ããŠå°ãèšåããããBUW(Bash on Ubuntu on Windows)ã®ã³ã³ãœãŒã«ã¯cmd.exeãšåãããããããŸã§ãšã¯æå³ããªãåäœ(æååããªã©)ãçºçãããããã¯WindowsãšLinuxã®æåã³ãŒããç°ãªãããã ãWindows 10èªèº«ã¯UnicodeåãããŠããããWindowsç³»ã¢ããªã±ãŒã·ã§ã³ã®å€ãã¯æ £äŸçã«ã·ããJISã䜿çšããBUWã¯UTF-8ã䜿çšããã
ã¡ãªã¿ã«Unicodeã¯æåéå(衚çŸãããæåã®ç¯å²)ãUTF-8ã¯ç¬Šå·åæ¹åŒ(æåéåãæ§æããæåã®è¡šçŸæ¹æ³)ã®äžçš®ã§ãããå³å¯ã«ã¯ååã«æ±ãã¹ãã§ã¯ãªããäŸãã°ãç§äžžãã¯æåã³ãŒããšããŠãUnicode(UTF-8)ããªã©æç¢ºã«ããŠãããããã¡ã¢åž³ãã¯ãANSIããUnicodeããUnicode big endianããUTF-8ããããã¹ããã¡ã€ã«ã®æåã³ãŒããšããŠæå®ã§ãããäŸãã°ãUnicodeããUnicode big endianããéžæããéã®æåã³ãŒãã¯UTF-16ãšãªããåè ã¯ãªãã«ãšã³ãã£ã¢ã³ãåŸè ã¯æåã©ããããã°ãšã³ãã£ã¢ã³ã ã
ãã®ããã«Windowsã®æåã³ãŒãã®æ±ããäžæç¢ºãªã®ãcmd.exeã«ãæªåœ±é¿ãäžããŠãããšçè ã¯æšå¯ããå人çã«ã¯cmd.exeã®æåã³ãŒããUTF-8ã«çµ±äžããŠã»ãããããã ãããã®è©±ã¯æ¬é£èŒãšã¯ç°ãªãã®ã§å²æãããããŠãåé è¿°ã¹ãæ¥æ¬èªã®æååãã ããä»ã®èšäºã§è¿°ã¹ãããã«BUWäžã§SSHãµãŒããŒãèµ·åããWindowsçSSHã¯ã©ã€ã¢ã³ãããã¢ã¯ã»ã¹ããã°ã倧åã®åé¡ã¯è§£æ±ºããã¯ãã ã
ããããå·çæç¹ã§ã¯BUWãèµ·åããŠããSSHãµãŒããŒãèµ·åãããšãã£ãæ¹æ³ãã確èªã§ããŠããªããããå°ã é¢åã§ãããããã§è©Šãããã®ãããªãŒã®ã¿ãŒããã«(端æ«)ãšãã¥ã¬ãŒã¿ãŒã ãWindowsäžã§åäœããã¿ãŒããã«ãšãã¥ã¬ãŒã¿ãŒã¯ããã€ãã®éžæè¢ããããã®ã®ãä»åã¯ãConEmuãããèŠããããã2007幎ã«ãã¡ãŒã¹ãããŒãžã§ã³ããªãªãŒã¹ããConEmuã¯ã¿ãæ©èœããšã¹ã±ãŒãã·ãŒã±ã³ã¹ãªã©ã«ã察å¿ããã¡ãžã£ãŒãªã¿ãŒããã«ãšãã¥ã¬ãŒã¿ãŒã§ãããã¡ãã»ãŒãžã¯è±èªã ããWebäžã«ã¯å€ãã®æ¥æ¬èªè³æãååšããããã䜿çšããäžã§å°ãããšã¯å°ãªãã ããã
![]() |
ãã®ãŸãŸèµ·åãããšcmd.exeãèµ·åããã®ã§ããã®ãŸãŸãbashããå®è¡ãããã芧ã®ãšããæ¥æ¬èªè¡šç€ºãã²ãšãŸãåé¡ã¯ãªã |
ãã ããæ¥æ¬èªãæ£ãã衚瀺ãããšããç¹ã«ãããŠã¯ããã©ã³ãèšå®ãªã©ããããããè¡ãã¹ãã ãConEmuã®èšå®é ç®ã¯éåžžã«å€ããããåããŠäœ¿ãå Žåã¯å°ã ãããããããããããªããããã©ã³ãèšå®ã¯ãMainãã«çšæãããŠããããããã¡ãã§äœ¿çšãããã©ã³ãããã©ã³ããµã€ãºãéžæããã°ãããçè ã¯M+ãšIPAãåæããMiguãã©ã³ãã䜿çšããŠããããŸããcmd.exeããbashãåŒã³åºããšïŒ»âããŒã§ã³ãã³ãå±¥æŽãåŒã³åºãããšãã§ããªããã ããConEmuã¯Windowsã«ã€ã³ã¹ããŒã«ãããåçš®ã·ã§ã«ãæ€åºããã¡ãã¥ãŒããèµ·åããæ©èœãåãã£ãŠããããããã¡ãããçŽæ¥bashãèµ·åããã°æ£ããåäœããã
![]() |
Win+Alt+PããŒãæŒããšèµ·åããèšå®ãã€ã¢ãã°ããMainãã»ã¯ã·ã§ã³ã§ãã©ã³ãèšå®ãªã©ãè¡ã |
![]() |
ãã¡ããåºæ¬çãªèšå®ãçµããŠvimãèµ·åããç¶æ ãå ã®ç»é¢ãšèŠæ¯ã¹ãŠã»ãã |
![]() |
ConEmuããbashãèµ·åããã«ã¯ãïŒNew Console dialogïŒãã¿ã³ã®å³åŽã«ããïŒâŒïŒãã¿ã³ãã¯ãªãã¯ããã¡ãã¥ãŒããïŒ{Bash}ïŒâïŒ{bash}ïŒãšã¯ãªãã¯ãã |
ååŸçµæããã¡ã€ã«ã«åºåãã
ããã§ã¯ä»åã®ã·ã§ã«ã¹ã¯ãªããã玹ä»ãããããã€ãã©ããvimãªã©ã§äžèšã®å 容ãäœæããchmodã³ãã³ãã§å®è¡æš©éãä»å ããŠã»ããã
#!/bin/bash
URLBASE=http://www.soumu.go.jp
URL={$URLBASE}/menu_news/s-news/
I=0
Output="/mnt/c/Users/kaz/Desktop/foo.csv"
if [ -f $Output ]; then
rm $Output
touch $Output
fi
Array=($(curl -s -S $URL | grep "<td" | sed -e 's/<td>//g' -e 's/<td .*">//g' -e 's/<\/td>//g' -e 's/<a.*="//g' -e 's/<\/a>//g' -e 's/">/\n/g' -e' s/ /_/g'))
for Obj in ${Array[@]}; do
Num=`expr $I % 4`
case $Num in
0 )
StrDate=`echo ${Obj} | sed -e 's/[\r\n]\+//g'` ;;
1 )
StrURL=`echo ${Obj} | sed -e 's/[\r\n]\+//g'` ;;
2 )
StrTitle=`echo ${Obj} | sed -e 's/[\r\n]\+//g'` ;;
3 )
StrCat=`echo ${Obj} | sed -e 's/[\r\n]\+//g'`
echo $StrDate,$StrCat,$StrTitle,$URLBASE$StrURL >> $Output ;;
esac
let I++
done
æåã¯ã¡ãŒã«ã§ååŸçµæãéä¿¡ããããšæã£ãããããããèããã°ããŒã«ã«ã§ååŸããæ å ±ãã€ã³ã¿ãŒãããçµç±ã§éä¿¡ããæå³ããªãããŸããéåžžã®Linuxãšéã£ãŠBUWã¯åžžã«çšŒåããOSã§ã¯ãªããããä»åã¯CSVãã¡ã€ã«ãšããŠåºåããæ¹æ³ãéžæããã
ä»åæ°ãã«å ããã®ã¯6è¡ç®ã®å€æ°ãOutputãããããŸã§ã®ã·ã§ã«ã¹ã¯ãªãããã芧ã«ãªã£ãæ¹ãªããçè§£é ããããã«ãåºåå ãšãªãCSVãã¡ã€ã«ããã«ãã¹ã§æå®ããŠããããã¡ãã¯ãèªèº«ã®ç°å¢ã«åãããŠå€æŽããŠã»ããããŸãã7ïœ11è¡ç®ã¯åºåãã¡ã€ã«ãæ¢ã«ååšããå Žåã¯1床åé€ããtouchã³ãã³ãã䜿ã£ãŠæ°ãã«çæããŠããã
13è¡ç®ã®é
åãArrayãã«æž¡ãsedã³ãã³ãã®å
容ãå°ã
倿Žãããä»å詊ãããšããåè§å€æ°ãã¿ã€ãã«ã«æã€èšäºãå«ãŸããŠããããã®ãŸãŸåºåãæåãšããŠã·ã§ã«ã¹ã¯ãªããã誀åäœããŠããŸãããã®ããåè§ã¹ããŒã¹ãã_(ã¢ã³ããŒããŒ)ãã«çœ®æããåŠçã远å ããŠãããåŸã¯26ç®ã®ãã¡ã€ã«åºåã ããã>>ããšãªãã€ã¬ã¯ããã·ã³ãã«ã«å©çšãããã¡ãªã¿ã«ã>ããšèšè¿°ããå Žåã¯ãã¡ã€ã«ã®æ¢åå
容ãç¡èŠããŠäžæžãããä»åã®å Žåã¯è¿œèšæžã蟌ã¿ãè¡ãã>>ããçšããŠããã
![]() |
ã·ã§ã«ã¹ã¯ãªãããå®è¡ãããšCSVãã¡ã€ã«ãçæãããã®ã§ãExcelãªã©ã§ç¢ºèªããã°ãã |
åŸã¯ã·ã§ã«ã¹ã¯ãªãããçæããCSVãã¡ã€ã«ãExcelãªã©ã§éãã°ã1è¡ããšã«æ¥ä»ãã¿ã€ãã«ãURLãªã©ã䞊ã¶ä»çµã¿ã ããããExcelãªã©ã¢ããªã±ãŒã·ã§ã³ã䜿çšããããªããšããå Žåã¯ã倿°Outputã®æ¡åŒµåã倿Žãã26è¡ç®ã®åºåå
容ããecho -e "$StrDate $StrCat\n$URLBASE$StrURL\n$StrTitle\n" >> $Output ;;ãã«å€æŽãechoã¯ã-eããªãã·ã§ã³ã远å ããããšã§ã\nããæ¹è¡ãšããŠæ±ãããã«ãªãããã ããããã«ã¯ã©ãŒããŒã·ã§ã³ã§å²ãŸãªããã°ãªããªãã®ã§æ³šæããŠã»ããã
![]() |
ãã¡ãã¯ããã¹ããã¡ã€ã«ãšããŠåºåããç¶æ ãããã¹ããšãã£ã¿ãŒã®URLã¯ãªãã«ãã«æ©èœã䜿ãå Žåã¯ããã¡ãæ¹ãæè»œãããããªã |
é¿ä¹ 接è¯å(Cactus)
















