less -iオプションの使い方を徹底解説!初心者でもわかる検索時の大文字小文字の無視
生徒
「Linuxでファイルを見るとき、キーワード検索が大文字と小文字を区別して困ることがあるんですが、なんとかならないですか?」
先生
「ありますよ。lessコマンドの-iオプションを使えば、大文字小文字を気にせず検索できます。」
生徒
「それって、たとえば'Error'と'error'の両方を同じように見つけられるってことですか?」
先生
「その通りです。詳しく使い方を見ていきましょう!」
1. lessコマンドとは?
less(レス)コマンドは、Linuxでテキストファイルの中身をページ単位で読みやすく表示するためのコマンドです。たとえば、長いログファイルや設定ファイルを少しずつスクロールして確認する時によく使われます。
単に中身を見るだけでなく、ファイルの中から文字列を検索する機能もあり、非常に便利です。
2. -iオプションの意味と役割
-iオプションは、「検索時に大文字と小文字を区別しない」という設定をするためのオプションです。これは英語で「ignore case(大文字小文字を無視する)」の略と覚えるとよいでしょう。
通常、lessコマンドでスラッシュ(/)を使って検索すると、大文字と小文字を区別してしまうため、例えばErrorとerrorは別物として扱われます。しかし、-iオプションをつければ、どちらでもヒットするようになります。
3. 基本的な使い方
それでは実際にless -iの使い方を見てみましょう。まずは、サンプルのテキストファイルを用意しておきます。
less -i sample.log
この状態で、たとえば/errorと入力して検索すると、ファイル内のError、ERROR、errorなど、すべての組み合わせにマッチします。
4. 検索の例と挙動の違い
実際にどんな違いがあるのか、具体的な比較をしてみましょう。
まずは、-iをつけない通常の検索です。
less sample.log
ここで/errorと入力しても、ErrorやERRORなどとは一致しません。
次に、-iをつけた場合の例です。
less -i sample.log
同じように/errorで検索すると、ErrorやERRORも含めて見つけてくれます。
5. 注意点:明示的な大文字があるとき
-iオプションにはちょっとした工夫があります。検索キーワードに大文字が含まれていない場合は「大文字小文字を区別しない」で検索しますが、検索キーワードに1文字でも大文字が含まれている場合は大文字小文字を区別して検索を行います。
つまり、/errorはErrorにもマッチしますが、/Errorと書いた場合はErrorしかマッチしないのです。
この仕組みにより、柔軟な検索ができるようになっています。
6. 他の検索関連オプションとの違い
lessには他にも検索に関するオプションがあります。
-I(大文字アイ)…常に大文字小文字を区別しない-i…小文字だけで検索したときは区別しない。大文字を含むと区別する(今回のテーマ)
どちらを使うかは、使いたいシーンによって選びましょう。
7. -iオプションの組み合わせ例
実務でよく使う組み合わせとして、以下のような例があります。
less -i +/fail /var/log/syslog
これは、/var/log/syslogというログファイルを開いた直後に、failという文字列を大文字小文字区別せずに検索する例です。
8. 他のコマンドとの違い:grepとの比較
Linuxには検索に使えるコマンドがたくさんありますが、その中でもgrepとlessの違いについても少し触れておきます。
grep -i "error" file.txt…ファイルの中からマッチする行だけを表示するless -i file.txt…ファイル全体を表示しつつ、検索して位置を探す
つまり、grepは「結果だけを取り出す」、lessは「中身を見ながら検索できる」と覚えるとわかりやすいでしょう。