COMPUTER LINUX

【Linux】文字列検索

 

テキストファイルから特定の文字列を検索するには、grep(グレップ)コマンドを使います。
grepコマンドは多くの機能がありますが、代表的な使い方を説明します。

 

テキストファイルから文字列を検索する

grepコマンドの標準的な使い方です。
指定した文字列が含まれた行を表示します。

grep 文字列 ファイル名

 実行例
$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

 

複数の文字列を指定して検索する

-eオプションを使って、複数の文字列を指定することもできます。

grep -e 文字列1 -e 文字列2 ファイル名

 実行例
$ grep -e root -e nobody /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin

-Eオプション(拡張正規表現を使用)を使って、複数の文字列を指定することもできます。

grep -E '文字列1|文字列2| ファイル名

 実行例
$ grep -E 'root|nobody' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin

 

他のコマンドの実行結果から文字列を検索する

他のコマンドの実行結果を、|(パイプ)を通して検索することもできます。

別コマンド | grep 文字列

 実行例
$ ifconfig | grep 127
inet 127.0.0.1 netmask 255.0.0.0

 

指定した文字列以外を検索する

-vオプションを使って、指定した文字列以外を検索することもできます。

grep -v 文字列 ファイル名

 実行例
$ grep -v sbin /etc/passwd
root:x:0:0:root:/root:/bin/bash
ec2-user:x:1000:1000:Cloud User:/home/ec2-user:/bin/bash

 

正規表現を使った文字列検索は、以下の記事を参照してください。

 

-COMPUTER, LINUX