このページの本文へ

知っているとオペレーションが100倍便利になる各種のコマンドを覚えよう

覚えておきたい必須コマンド30―その2・便利なコマンド

2001年06月09日 13時58分更新

文● 中野 賢

  • この記事をはてなブックマークに追加
  • 本文印刷

ファイルの数が多くなると、ファイル名だけでは、どこに何があったのかわからなくなってくる。あるキーワードが含まれるファイルを探したいときに、エディタの検索機能を用いるのも不便だ。grepコマンドはファイルから、指定したキーワードを探してくれる。

たとえば、linux.txtから“linux”という文字列を探すには、次のようにする。

USER$ grep linux linux.txt

キーワードの大文字/小文字を区別しないで探すのならiオプションを付ける。nオプションは一致した行の番号を表示する。

USER$ grep -in linux linux.txt
4: % ねらいとしては、Linux(UNIX)を
8: % 操作を通して、Linuxを理解してもらう
32: Linuxシステムは図1のような木構造
123: $ mkdir linux

キーワードの指定には正規表現も指定できる。正規表現とは、文字列のパターンを指定する記述法のことだ。表3によく使われる正規表現を示す。egrepではより強力な正規表現を使える。

表3 grepとegrepの正規表現
正規表現 意味
^ 行の先頭
$ 行の終り
. 任意の1文字
[...] ...のうちの 任 意の1文字。a-zや0-9のような範囲指定も有効
[^...] ...にない任意の1文字。範囲指定も有効
r* ゼロ回以上の、rの繰り返し
r+ 1回以上のrの繰り返し
r? ゼロまたは1回のr
r{n,m} n回以上m回以下のrの繰り返し
r1|r2r 1またはr2(egrepのみ)
(r) rの正規表現(egrepのみ)

正規表現を用いると、空行を探すことも簡単にできる。

USER$ grep -n '^$' linux.txt
10:
28:
44:

また、次のようにして、行頭がUSERまたはrootで始まる文字列を検索することも簡単だ。かっこや┃の表記はegrepでしか使えない。

USER$ egrep -n '^(USER|root)' linux.txt
14:USER$
20:USER$ pwd
80:USER$ cd /usr
160:root rootユーザーのホームディレクトリ

fgrepを用いると、複数個のキーワードを記述したファイルに基づいて検索することができる。

USER$ cat key
hoge
fuga
USER$ fgrep -ni -f key linux.doc

この場合は、keyファイルに記述されている“hoge”と“fuga”という文字列の含まれる行を表示する。

Column バーチャルCD-ROM

CD-ROMのバックアップを取りたい場合、catコマンドの引数にデバイスファイルを指定すると、そのデータを読み込み、標準出力に出力する。そこで、次のようにするだけで、簡単にCD-ROMの内容を取り出すことができる。

USER$ cat /dev/scd0 > /home/data
/foo|.img

作成したファイルは、ループバックデバイスを経由して、ファイルシステムにマウントできる。

root# mount -t iso9660 -o loop /home/data/foo.img /mnt/cdrom

週刊アスキー最新号

編集部のお勧め

ASCII倶楽部

ASCII.jp Focus

MITテクノロジーレビュー

  • 角川アスキー総合研究所
  • アスキーカード
ピックアップ

デジタル用語辞典

ASCII.jp RSS2.0 配信中