Fedora Core 500の技
Valid XHTML 1.0!
正当なCSSです!

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 作成