Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

grep のエラーメッセージ

$ env LANG=C grep '-misc-fixed-medium-r-normal--14-' /usr/X11R6/lib/X11/fonts/TrueType/fonts.alias
grep: invalid max count
$ grep '-misc-fixed-medium-r-normal--14-' /usr/X11R6/lib/X11/fonts/TrueType/fonts.alias
grep: 一致回数が間違っています

grep はパターン文字列を '' で囲った場合でも、それがハイフンで始まっているとオプション指定だと思うらしい。この場合、最初の '-m' がオプション -m (--max-count=n) と勘違いされているらしい。オプション -m は man grep には載っておらず、 grep --help を見て初めて分かるものなので気付きにくい。
解決策としては、最初のハイフンを消すか、オプション -e を用いる。

$ grep -e '-misc-fixed-medium-r-normal--14-' /usr/X11R6/lib/X11/fonts/TrueType/fonts.alias