Bashãä»»æã®å Žæã§éã
BUW(Bash on Ubuntu on Windows)ã䜿çšããå Žåãéåžžã¯Linuxã®ããŒã ãã£ã¬ã¯ããªãšãªãã%LOCALAPPDATA%\lxss\home{ãŠãŒã¶ãŒå}ããã©ã«ããŒãéããã ããä»»æã®ãã©ã«ããŒã§äœ¿çšããããšããå Žé¢ã¯å°ãªããªããfindstrã³ãã³ããããgrepã³ãã³ãã§æååã«ãããããè¡ãæœåºãããå ŽåãçŸåšã®ãã©ã«ããŒããBashãèµ·åã§ããã°äŸ¿å©ã ããããã®åé¡ã¯ã¬ãžã¹ããªãæäœããã°ãç°¡åã«è§£æ±ºã§ãããå°ã ç ©éã«ãªããã以äžã«ãã®æé ã玹ä»ãããã
![]() |
Win+RããŒãæŒããŠããã¡ã€ã«åãæå®ããŠå®è¡ããèµ·åããããã¹ãããã¯ã¹ã«ãregeditããšå ¥åããŠïŒOKïŒãã¿ã³ãã¯ãªãã¯ãã |
![]() |
ã¬ãžã¹ããªãšãã£ã¿ãŒãèµ·åããããHKEY_CLASSES_ROOT\Directory\Background\shellããŒãéã |
![]() |
BashããŒã®ã(æ¢å®)ããããã«ã¯ãªãã¯ããããŒã¿ããOpen Bashãã«å€æŽãããïŒOKïŒãã¿ã³ãã¯ãªãã¯ãã |
![]() |
ç¶ããŠå³ãã€ã³ã®äœããªããšãããå³ã¯ãªãã¯ããïŒæ°èŠïŒâïŒæååïŒãšé ã«ã¯ãªãã¯ãã |
![]() |
ã(æ¢å®)ããããã«ã¯ãªãã¯ã§éããããŒã¿ããcmd.exe /c pushd \"%V\" && bash.exeãã«ãããïŒOKïŒãã¿ã³ãã¯ãªãã¯ãã |
以äžã§æäœã¯çµäºã ãBashãèµ·åããããã©ã«ããŒããã¹ã¯ãããã®äœããªããšãããShiftããŒãæŒããªããå³ã¯ãªãã¯ãããšãã³ã³ããã¹ãã¡ãã¥ãŒã«ïŒOpen BashïŒãå ãã£ãããšã確èªã§ããã ããããã¡ããã¯ãªãã¯ããã°ãBashãèµ·åãããå ·äœçã«ã¯cmd.exe=ã³ãã³ãããã³ãããèµ·åããpushdã³ãã³ãã§ã«ã¬ã³ããã©ã«ããŒãç§»åããã®çµæãæ£åžžã«çµäºããå Žåã«ãbash.exeãèµ·åããä»çµã¿ã ãä»åã¯æååå€ãExtendedãã远å ããããšã§ãShiftããŒãæŒããæã§ãªããšé ç®ãçŸããªãèšå®ãæœããŠããããåžžã«è¡šç€ºãããå Žåã¯æååå€ãExtendedãã¯è¿œå ããªãã
![]() |
ãã¹ã¯ãããã®äœããªããšããããã©ã«ããŒããShiftããŒãæŒããªããå³ã¯ãªãã¯ãããšãïŒOpen BashïŒãå ãã |
![]() |
ïŒOpen BashïŒãã¯ãªãã¯ãããšãã«ã¬ã³ããã©ã«ããŒã«ç§»åããç¶æ ã§Bashãèµ·åãã |
ãªãã远å ããã¬ãžã¹ããªãšã³ããªãŒãåé€ããã°ãã³ã³ããã¹ãã¡ãã¥ãŒã®é ç®ã¯æ¶ããããé¢åãªå Žåã¯äžèšå²ã¿ã®å 容ããããã¹ããšãã£ã¿ãŒã§äžèšå²ã¿ã®å 容ãå ¥åãããã¡ã€ã«åã®æ¡åŒµåã«ã.regããä»ããŠããUTF-16(BOMä»ã)ã§ä¿åãäœæããã¬ãžã¹ããªãã¡ã€ã«ãããã«ã¯ãªãã¯ããã°ãåãšã³ããªãŒãæ°ã¹ãããã§åé€ã§ããã
Windows Registry Editor Version 5.00
[-HKEY_CLASSES_ROOT\Directory\Background\shell\Bash]
[-HKEY_CLASSES_ROOT\Directory\shell\Bash]
[-HKEY_CLASSES_ROOT\Drive\shell\Bash]
[-HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\Bash]
BashããExcelããã¯ã«ã¢ã¯ã»ã¹ãã
ããŠãä»åã¯æ°ããã·ã§ã«ã¹ã¯ãªããã«ãã£ã¬ã³ãžããããæ¥åžžæ¥åã§Excelãäœ¿ãæ©äŒã¯å€ããšæãããExcelããã¯(ã¯ãŒã¯ã·ãŒã)ã®å®äœã¯ZIP圢åŒãã¡ã€ã«ã§ããããšããåãã ãããã以åã¯ãã€ããªåœ¢åŒã ã£ããã®ã®ãExcel 2007ããXMLããŒã¹ã«åãæããé¢é£ãã¡ã€ã«ãZIPã§ããã±ãŒãžã³ã°ãããã¡ã€ã«åœ¢åŒã«åãæ¿ãã£ãŠãããunzipã³ãã³ããã€ã³ã¹ããŒã«ããå±éãããšããã€ãã®ãã©ã«ããŒãšãã¡ã€ã«ãå±éãããã¯ãã ããã©ã«ããŒããã©ã£ãŠãããšãxl\worksheetsããã©ã«ããŒã«ãsheet1.xmlããshhet2.xmlãâŠâŠãšãExcelããã¯ã®ã¯ãŒã¯ã·ãŒããšåããã¡ã€ã«åã確èªã§ãããã ãããã¡ãã¯ã»ã«ãªã©ã®èšå®å 容ã§ãããã»ã«ã«å ¥åããæ°å€ãæååã¯å«ãŸããŠããªãã
![]() |
ãunzipãã¯æ¢å®ã®ããã±ãŒãžã«å«ãŸãããªãã®ã§ããsudo apt-get install unzipããå®è¡ããŠã€ã³ã¹ããŒã«ãã |
ãã¹ãŠã®ããŒãžã§ã³ã§ç¢ºèªããèš³ã§ã¯ãªãããExcel 2016ã§äœæããExcelããŒã¿ã®å Žåãæ°å€ãæååã¯ãxl\sharedStrings.xmlãã«å«ãŸããŠãããåºæ¬çã«ã¯æ¹è¡ãå«ãŸãªãXML圢åŒãã¡ã€ã«ã ããã»ã«å ã®æååã«ã&ãå«ãŸãããšããšã³ãã£ãã£åç §(XMLäžã§ããã«ã¯ã©ãŒããŒã·ã§ã³ãªã©ãæ±ããšã¹ã±ãŒãæå)ãå ãããã&ãã眮ãæããéšåã®ã¿æ¹è¡ãå ããä»çµã¿ã ã
![]() |
sharedStrings.xmlsã®å 容ã衚瀺ãããç¶æ ãã»ã«å ã«å ¥åããæååãèšé²ãããŠãã |
ããã§ã¯ããããæååãæãåºããŠã¿ãããä»åã¯sedã§ã¯ãªããæ¹è¡ã«ã€ããŠæè»ã«å¯Ÿå¿ã§ããperlãå©çšããã·ã§ã«ã¹ã¯ãªãããäœæããããã€ãã©ããvimãªã©ã§äžèšã®å 容ãäœæããchmodã³ãã³ãã§å®è¡æš©éãä»å ããŠã»ããã
#!/bin/bash
BaseDir=/mnt/c/Users/kaz/Desktop
BaseFile=$BaseDir/Book1.xlsx
TmpDir=/tmp/_TMP
OutputFile=$BaseDir/Output.txt
if [ ! -d $TmpDir ]; then
mkdir $TmpDir
fi
unzip -qq $BaseFile -d $TmpDir
cat $TmpDir/xl/sharedStrings.xml | perl -pe 's/\&/&/g; s/></>\n</g; s/[\n|\r]//g; s/></>\n</g; s/<[^>]*>//g' | perl -pe 's/^\n//g' > $OutputFile
rm -rf $TmpDir
perlã®ãªãã·ã§ã³ãšããŠã¹ã¯ãªãããå®è¡ãããeããšçµæãæšæºåºåãããpããçµã¿åãããæ£èŠè¡šçŸãçšããŠã¯ã³ã©ã€ããŒã§è¡ã£ãŠããããã ããæ¹è¡ãæ£ããåé€ãããªãã£ãã®ã§ããã€ããçµç±ããŠåã³perlã§åé€ããããã®ã¹ã¯ãªãããå®è¡ãããšã倿°ãBaseFileãã§æå®ããExcelããã¯ããæååã ãã倿°ãOutputFileãã§å®çŸ©ããŠããããã¹ããã¡ã€ã«ã«åºåããã
![]() |
ã·ã§ã«ã¹ã¯ãªãããå®è¡ãããšã»ã«ã®æååãããã¹ããã¡ã€ã«ã«åºåã§ãã |
ãã¡ããExcelæ¬äœã䜿ãã°ã¿ããã«ã³ãã§åºåã£ãCSVãã¡ã€ã«ãåºåã§ããããããã®ãããªã·ã§ã«ã¹ã¯ãªãããçšããå Žé¢ã¯å°ãªãã ãããã ããå®è¡ããã ãã§ãã¡ã€ã«å±éããæååã®æãåºããåŸåŠç(å±éãã¡ã€ã«ã®åé€)ãŸã§ã®ã¯ã³ã¹ãããã§å®è¡ã§ããç¹ã¯ãã·ã§ã«ã¹ã¯ãªãããªãã§ã¯ã ã
é¿ä¹ 接è¯å(Cactus)



























