lessコマンドで文字列検索したときに大文字小文字を無視させる設定方法
はじめに
古いサーバー環境では less の検索機能で大文字小文字を区別していなかったのに、
新しく構築したサーバで大文字小文字を区別するようになって使いづらかったため、設定方法について書こうと思います。
検証環境
$ uname -moi
x86_64 x86_64 GNU/Linux
$ bash -version | head -n 1
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
$ less --version | head -n 2
less 458 (POSIX regular expressions)
Copyright (C) 1984-2012 Mark Nudelman
大文字小文字を無視するオプション -i
less
コマンド実行時に、 -i
オプションを指定することで、 less
コマンド起動後の検索で大文字小文字を無視させることができます。
/etc/passwd
ファイルを less
で開いて検索する例を取り上げます。
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
以下のように less
コマンドをパイプで繋いで起動してみます。
$ cat /etc/passwd | less
less
内で /
を押すと検索が始まります。 user という文字で検索すると、以下の行だけがヒットします。
※下の例では、検索にヒットする部分を *
で囲んでいます。
tss:x:59:59:Account used by the tro*user*s package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
今度は less -i
コマンドをパイプで繋いで起動してみます。/
をタイプしたあと user で検索すると、以下の部分がはじめに見つかります。
ftp:x:14:50:FTP *User*:/var/ftp:/sbin/nologin
less -i
をデフォルト設定とする方法
less
コマンドで -i
オプションを付け忘れても検索時に大文字小文字が無視されるように設定してみます。
LESS
環境変数を設定する
LESS
という環境変数が設定されていた場合、これから設定を読み込んだ後に less
コマンドが実行されます。
$ export LESS='i'
$ cat /etc/passwd | less
これで、 -i
オプションをコマンドラインから渡したときと同じ挙動になります。.bashrc
などに追記しておくが良いですね。
echo "export LESS='i'" >> ~/.bashrc
ひとこと
古いサーバにはこれが設定されていました。
環境変数を設定してやることで同じように less
が利用できますね。
僕は以下のように環境変数を設定しています。
export LESS='iRX'
i
=/
キー押下で検索を行うときに、大文字小文字を無視するR
= 標準入力から受け取った文字列がカラーリングされていた場合、less
実行結果もカラーリングするX
=less
から抜けたときに出力結果がターミナルに残るようにする
ディスカッション
コメント一覧
まだ、コメントがありません