 
TOP > Linux > Fedoraの技 > 301-400 > 302
テキスト内の検索をするには
grepコマンドを利用することでテキスト検索を行うことが可能です。探したい文字列、そしてファイル名を指定し、見つかった行のみを表示します。
下記は/etc/servicesファイルでsshを含む行を表示させた例です。3行あることが分かります。
$ grep ssh /etc/services
ssh       22/tcp        # SSH Remote Login Protocol
ssh       22/udp        # SSH Remote Login Protocol
x11-ssh-offset 6010/tcp       # SSH X11 forwarding offset
"-i"オプションを利用すると大文字と小文字を区別しません。下記の例ではwcコマンドで結果の行数のみを表示させていますが、1行増えていることが分かります。
$ grep IANA /etc/services | wc -l
5
$ grep -i IANA /etc/services | wc -l
6
指定ディレクトリ内すべてのファイルを対象にしたい場合は"-r"オプションを利用します。下記は/etc/sysconfig/network-scriptsディレクトリ内すべてのファイルでeth0を検索した例です。
$ grep -r eth0 /etc/sysconfig/network-scripts
/etc/sysconfig/network-scripts/ifcfg-eth0:DEVICE=eth0
/etc/sysconfig/network-scripts/ifup-aliases:# Specify multiple ranges using multiple files, such as ifcfg-eth0-range0 and
〜略〜
"-L"オプションで結果をファイル名だけで表示することができます。
$ grep -L -r eth0 /etc/sysconfig/network-scripts
正規表現(参照303)を使うことも可能です。下記はhttpsで始まる行を指定しています。
$ grep ^https /etc/services
https      443/tcp         # MCom
https      443/udp         # MCom
"-n"オプションで行番号を表示することも可能です。
$ grep -n ^https /etc/services 
190:https        443/tcp       # MCom
191:https        443/udp       # MCom
2005-12-03 作成