こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ハイフン2つをgrepする方法

history | fgrep \-\-
とやっても、
history | fgrep '--'
とやっても
usage: fgrep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
[-e pattern] [-f file] [--binary-files=value] [--color=when]
[--context[=num]] [--directories=action] [--label] [--line-buffered]
[--null] [pattern] [file ...]
が表示されます。
正しいやり方を教えてください。

投稿日時 - 2017-07-15 18:11:17

QNo.9352196

暇なときに回答ください

質問者が選んだベストアンサー

表示されているusageには一応載ってますけど。
オプションに続く引数をパターンとして処理する[-e pattern]
ですので

$ history | fgrep -e --

です。

ちなみに

$ history | fgrep \-\-

の \-\- の部分はシェルが処理した上で -- になってfgrepの引数として渡されます。
ですのでするなら

$ history | fgrep \\-\\-

です。

$ history | fgrep '--'

も同様に、'--'はシェルが処理して -- になって以下略します。

投稿日時 - 2017-07-15 19:43:56

お礼

できました!ご回答いただきまして、ありがとうございました。
$ history | fgrep -- '--'
$ history | fgrep -e --
$ history | grep \\-\\-
の3パターンでハイフン2つをgrepできることがわかりました。
-eは正規表現用だと思ったので試していませんでした…

投稿日時 - 2017-07-15 20:07:42

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

#2です。

#2のまん中辺りの

$ history | fgrep \\-\\-

はダメですね。fgrepに引数として渡されるのは \-\- なので・・・
grepの方で試してて失念してました。

投稿日時 - 2017-07-15 19:48:42

ANo.1

history | fgrep -- '--'

最初の -- はオプション終了の意味、次の -- が検索文字列

投稿日時 - 2017-07-15 19:41:23

お礼

できました!ご回答いただきまして、ありがとうございました。

投稿日時 - 2017-07-15 20:00:47