PowerShellã§ã€ãããšã€ãªã¢ã¹ãšåãååã®ã³ãã³ãã«ãã¹ãéã£ãŠãããã©ã£ã¡ã䜿ãããã®ã
ãªããšãªãæã£ãã®ã§ãšã³ããªãŒããŸããã
çªç¶ã«ãMinGWã®ããšãæãåºããŸããã ããã€ã¯äŸ¿å©ãªãã€ã§ãWindowsã§ãUnixçãªã³ãã³ããå®è¡ããã®ã«äœ¿ãããšãã§ããŸãã ããã«Cygwinã§ã¯ãªãã®ã§Cãã©ã€ãã®æå®ãã/cygdrive/cããšãããªããŠãã/cãã§èš±ããŠããããããã€ã§ãã
Cygwinã¯cygpath䜿ãã°å
ã®ãã¹ã«ããŠãããŸããã©ãã
Windowsã§ã¯Gitãã€ã³ã¹ããŒã«ãããšãmsysãäžç·ã«å°å
¥ãããŠUnixçãªç°å¢ã䜿ãããšãã§ããããã«ãªããŸãã ããã®ã/usr/binããã£ã¬ã¯ããªã«ãã¹ãéããŠããã°ããWindowsã®ã³ãã³ãããã³ãããªã©ãããUnixçãªæäœãã§ããŠäŸ¿å©ã ãªããšãªããŸãã
ãµã©ãªãŒãã³ã®é ã¯ãã®èšå®ãããŠãŠãããã¹ããã¡ã€ã«ããã®æååæ€çŽ¢ã«Windowsæšæºã³ãã³ãã®ãfindstrãã䜿ããã«grepã䜿ã£ãŠãããããŸããã ããã¯ããã§äžå
·åå€ãã£ãã®ã§ããã
ä»ãšãªã£ãŠã¯PowerShellã䜿ã£ãŠããã®ã§grepãå¿
èŠãããŸããã
Select-String -Path pages\*.md -Pattern "^.*\[aaa\].*$"
ãªã©ãšããã°ãã¿ãŒã³ã«ãããããå
容ã衚瀺ããŠãããŸãã
ããããšã€ãªã¢ã¹ã匵ã£ãŠããã
ããã§ãµãšæãã ããã®ã§ãã ãããã®ããŒãžã§ã³ã®PowerShellã£ãŠãSelect-Stringã«ãgrepããšãããšã€ãªã¢ã¹ãæšæºã§ã€ããŠãªãã£ãããªïŒãšã
æå
ã®Windows10ã§ã¯ãšã€ãªã¢ã¹ã«ã¯å
¥ã£ãŠããŸããã§ããã
ãããSelect-Stringã«ãgrepããšãšã€ãªã¢ã¹ãèšå®ããŠããå Žåã«Gitã®ã»ãã«ãã¹ãéã£ãŠããããã©ã£ã¡ãå©çšããããã ãããšäžå®ã«ãªããŸããã
ããã§è©ŠããŠã¿ãããšã«ã
ãšã€ãªã¢ã¹ãèšå®ãã
ãã¡ãç°¡åã§ãããã
Set-Alias -Name grep -Value Select-String
Gitã®ã/usr/binãã«ãã¹ãéã
ããã¯å°ã.NetFrameworkå
çã®ãååãå¿
èŠã«ãªããŸãã
[System.Environment]::SetEnvironmentVariable("PATH", "$env:Path;C:\Program Files\Git\usr\bin")
ãããããã§ãã¹ãéããŸããã
ã³ãã³ããã©ãã«ããã調ã¹ã
Windowsæšæºã³ãã³ãã§ãããwhereããUnixç³»ã ãšãwhichããPowerShellã§ãããŸãã
CommandType Name Version Source ----------- ---- ------- ------ Alias grep -> Select-String
ããããšã€ãªã¢ã¹ãåªå
ãããŠããâŠ
ã§ã¯Gitã®ã»ãã®grepãæ¢ãããšæããšïŒ
Get-Command grep -CommandType Application
ãšãããšå®è¡åœ¢åŒãæ¢ããŠãããã¯ãã§ãã
CommandType Name Version Source ----------- ---- ------- ------ Application grep.exe 0.0.0.0 C:\Program Files\Git\usr\bin\grep.exe
ãªãã»ã©ã確ãã«ãã£ããããšããã
ãšããããšã§ããšã€ãªã¢ã¹ã®ã»ããåªå
ãªããã§ãã
äžå¿å
¬åŒããã¥ã¡ã³ãã§ã調ã¹ãŠã¿ãããšã«ããŸããã Gitãžã®ãã¹ã$env:Pathã®æåŸã«ã€ããŠããŸããŸãããããã
about_Command_Precedence
https://technet.microsoft.com/ja-jp/library/hh848304.aspx
ãã¡ãã®å
容ã«ãããšã次ã®ããã«ãããŸãã
If you do not specify a path, Windows PowerShell uses the following precedence order when it runs commands:
1. Alias
2. Function
3. Cmdlet
4. Native Windows commands
ãã¹ãç¹å®ã§ããªãå Žåã¯æ¬¡ã®åªå
é äœã§ã³ãã³ããå®è¡ããŸããšãããŸãã
ãšããããšã§ããšã€ãªã¢ã¹ïŒé¢æ°ïŒã³ãã³ãã¬ããïŒå®è¡åœ¢åŒããšããããšã«ãªããŸããã
ã ããä»åãSelect-Stringãžã®ãšã€ãªã¢ã¹ãåªå
ããããšããããšã«ãªããŸãã
ãããã³ãã³ãã¿ã€ããŸã§åãã ã£ããšãããïŒãšããããšãç¶ãã«æžããŠãããŸããã
When the session contains items of the same type that have the same name, such as two cmdlets with the same name, Windows PowerShell runs the item that was added to the session most recently.
ã»ãã·ã§ã³äžã«åãçš®é¡ã§åãååãæã£ãã¢ã€ãã ãåãååã®ïŒã€ã®ã³ãã³ãã¬ããããã£ããã©ããããïŒ
ãã®ãšãã¯ãã®ã»ãã·ã§ã³ã«åŸãã远å ãããã»ããå®è¡ããããšãããŸãã ã ãããã¢ãžã¥ãŒã«ãã€ã³ããŒããããããŠåŸãã被ã£ãååã®ãã®ããã£ãããããšããã¡ããåªå
é äœãäžããŠããŸãã®ã§ããã
æ°ãä»ããªããšãããªãã§ããã
ãšããããšã§ããšã€ãªã¢ã¹ã¯çšæ³çšéãå®ã£ãŠæ£ãããšãããšããã§ããããã
å人çã«ã¯ãšã€ãªã¢ã¹ã§ã³ãã³ãã¬ãããåŒã³åºããããªã¹ã¯ãªããã¯æžããªãã»ããç¡é£ã ãªãŒãšæã£ãŠããŸãã æå³ããªãåäœãããŠããŸãããã§ããã