2017-02-27 5 views
0

私はgrepをたくさん使っていますが、少し改善したいと思います。「man grep」のフラグをgreppingするのに最も簡単な方法は何ですか

質問について。

:私が試した -vが含まれている行の後に次の5行を見つけるために、このように
-v, --invert-match 
     Selected lines are those not matching any of the specified patterns. 

:私は主にこの、 grep -v 'pattern' filename-vが立っていた何の説明を見つけること manエントリを狭めてみたかったです

man grep | grep -A 5 -v

man grep | grep -A 5 '-v'

彼らは返す:

man grep | grep -A 5 'Selected'

man grep | grep -A 5 Selected

が作業を行いますので、

usage: grep [-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 ...] 

は、これは私を混乱させる。

私のアプローチで何が間違っていますか?私が必要とするものを達成するための簡単な方法はありますか?

+1

? – fedorqui

+3

上記の検索方法に同意しますが、検索項目がハイフンで始まるという問題があります。したがって、grepは別のオプションと考えています。多くのコマンドと同様に、正規表現の前に2つのハイフン( - )を使用できます。これは、次に来るものをテキストとして扱うようにコマンドに指示します。また、単にハイフン(\ - )をエスケープすることもできます。 – grail

+1

このQは、StackOverflowで定義されているプログラミングに関するものではありません。それは、S.E.関連サイトhttp://superuser.comまたはhttp://unix.stackexchange.com(UnixおよびLinux)。あなたのQの下にある 'flag'リンクを使って、司会者にそれを移動するように依頼してください。 2つの異なるサイトに同じQを投稿しないでください。ここにQを投稿する前に、http://stackoverflow.com/help/how-to-ask http://stackoverflow.com/help/dont-askとhttp://stackoverflow.com/help/mcveをお読みください。がんばろう。 – shellter

答えて

0

1つの方法は、コマンドのためにInfoドキュメントを直接解析することです。 info grep(または他のコマンド)を実行すると、より詳細で構造が整ったドキュメントがよく見受けられます。これにより、必要なセクションだけをピンポイントで表示することができます。これは、Linux/MacOSの/ BSDで動作するはずです

info_search() { 
    info --subnodes "$1" -o - 2>&- \ 
    | awk -v RS='' "/(^|\n)(‘|'|\`)$2((,|\[|).*)?(’|')\n/" 
} 

:ここ

はオプション/変数の/ etcに関連Infoセクションを印刷する関数です。出力は次のようである:使用してそれを介して閲覧については、 `/`、あなたが探している用語が続く何

 
$ info_search grep -v 
‘-v’ 
‘--invert-match’ 
    Invert the sense of matching, to select non-matching lines. (‘-v’ 
    is specified by POSIX.) 
 
$ info_search gawk RS 
'RS == "\n"' 
    Records are separated by the newline character ('\n'). In effect, 
    every line in the data file is a separate record, including blank 
... 
 
$ info_search bash -i 
`-i' 
    Force the shell to run interactively. Interactive shells are 
... 
関連する問題