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 | lessless 内で / を押すと検索が始まります。 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/nologinless -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から抜けたときに出力結果がターミナルに残るようにする
ディスカッション
コメント一覧
まだ、コメントがありません