LoginSignup
1
0

More than 5 years have passed since last update.

Windows プロンプト環境における各種 grep の日本語挙動

Last updated at Posted at 2017-02-23

Windows における grep について

Windows コマンドプロンプト環境でも grep は割とよく使う。Windows にデフォルトで grep は入っていないので何かしら互換ツールを導入する必要がある。

Windows に grep が入る同線はけっこういっぱいあり、開発環境をいろいろ入れていると、至る所に grep が設置されるので、どの grep を使うのが適切っぽいか動作を軽く検証した。

※今回は MSYS Bash 等の環境ではなく、生のコマンドプロンプトにおける挙動を確認した。

検証環境

  • Windows 10 Home

chcp 932 (Shift_JIS) における動作

MSYS付属grepのケース
> echo 漢字 | C:\MinGW\msys\bin\grep.exe 漢字
漢字
MSYS2付属grepのケース
> echo 漢字 | C:\msys2\usr\bin\grep.exe 漢字
(出力なし)
UnxUtils付属grepのケース
> echo 漢字 | C:\UnxUtils\usr\local\wbin\grep.exe 漢字
????
Git付属grepのケース
> echo 漢字 | "C:\Program Files\Git\usr\bin\grep.exe" 漢字
(出力なし)

chcp 65001 (UTF-8) における動作

MSYS付属grepのケース
> echo 漢字 | C:\MinGW\msys\bin\grep.exe 漢字
(出力なし)
MSYS2付属grepのケース
> echo 漢字 | C:\msys2\usr\bin\grep.exe 漢字
漢字
UnxUtils付属grepのケース
> echo 漢字 | C:\UnxUtils\usr\local\wbin\grep.exe 漢字
(出力なし)
Git付属grepのケース
> echo 漢字 | "C:\Program Files\Git\usr\bin\grep.exe" 漢字
漢字

所感

コマンドプロンプトのデフォルトコードページを 65001 (UTF-8) にするのはやりすぎ(他のコマンドラインツールへの影響が予測できない) かと思うのでそれはしないとして、とりあえず chcp 932 (Shift_JIS) の環境を前提にするとすれば、普段は MSYS の grep がデフォルトで実行されるように PATH を通しておくのが利便性的に無難かな、と思った。

※ Cygwin については検証はしていない。今更 Cygwin を使う気持ちは起きないのでそもそも最近は Cygwin をインストールすることはなくなった。

1
0
1

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
1
0