manの結果をgrepできるようにするLinuxコマンドについて

特定のLinuxコマンドのコマンドやオプション名を忘れたが、一部のみ覚えている時にmanコマンドの結果からgrepしたいことがあります。

manコマンドで特定のLinuxコマンドのドキュメント読もうとすると、Manual pageが起動しますが標準出力されないためgrepコマンドで対象を絞り込むことができません。

調べてみると、colコマンドでこの問題を解決できることがわかりました。

man colすると下記の通り、標準入力から改行文字でフィルタリングすることがわかります。

NAME
     col — filter reverse line feeds from input

man systemctl | col | grep listのような使い方をするのですが、より具体的なユースケースは以下のようになります。

$ man systemctl | col | nl | grep -A 2 list

nlコマンドは行番号付きで標準出力を行います。

grepコマンドのオプションである-Aは、一致した文字列から後方n番目までをまとめて出力してくれます。

まとめ

manの結果をgrepできるようにするには、colコマンドを使うとよい