フィルターサーチの使い方

Posted on:

検索してマッチした行のみを表示できます。

マッチした行のみを表示

前方検索(/)、後方検索(?)と同様に(&)を入力すると検索語の入力モードになります。 このとき検索入力のモードは引き継がれるので、「正規表現」や「大文字小文字の区別」などの設定が引き継がれます。

ここで入力した検索語にマッチした行のみが表示される「新しいドキュメント」が作成されて、そのドキュメントに移動します。

このときヘッダー行の指定をしていた場合は、そのヘッダー行も表示されます。

複数ファイルを開いている場合と同様にドキュメントを[]で切り替えることができます。

行番号は連動しているため、フィルターで表示している行から[により元のドキュメントに移動した場合は、該当行の位置に移動します。

filter filter

マッチしない行を表示

(&)で検索語の入力モードのときに、!を入力するとマッチしない行を表示する(Non-match)モードになります(トグル)。

フィルターサーチの終了

フィルターサーチで作成されたドキュメントはK(大文字)ですべて閉じます。 そのドキュメントのみを閉じるctrl+kも使用できます。

フィルターと--quit-if-one-screenの併用

--quit-if-one-screenと併用すると、フィルターで1画面に収まる場合はそのまま終了します。 --headerを指定している場合は、ヘッダー行も表示されます。

これらを併用すると、便利なgrepとして使用できます。

ps aux|ov --quit-if-one-screen --header --filter "postgres"
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
postgres    1589  0.0  0.0 221992 29952 ?        Ss   Jul24   0:05 /usr/lib/postgresql/14/bin/postgres -D /var/lib/postgresql/14/main -c config_file=/etc/postgresql/14/main/postgresql.conf
postgres    1624  0.0  0.0 222104 11336 ?        Ss   Jul24   0:00 postgres: 14/main: checkpointer 
postgres    1626  0.0  0.0 221992  8904 ?        Ss   Jul24   0:01 postgres: 14/main: background writer 
postgres    1627  0.0  0.0 221992 11464 ?        Ss   Jul24   0:01 postgres: 14/main: walwriter 
postgres    1628  0.0  0.0 222560  9928 ?        Ss   Jul24   0:02 postgres: 14/main: autovacuum launcher 
postgres    1629  0.0  0.0  76728  7112 ?        Ss   Jul24   0:02 postgres: 14/main: stats collector 
postgres    1631  0.0  0.0 222420  8904 ?        Ss   Jul24   0:00 postgres: 14/main: logical replication launcher 
noborus   747819  0.0  0.0 1603756 7552 pts/0    Rl+  15:50   0:00 ov -H1 --filter postgres --quit-if-one-screen