ファイル内の特定文字から始まる文字列を抽出する方法|grep ^の正規表現と実務活用例

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, ディレクトリ・ファイル操作 > ファイル内の特定文字から始まる文字列を抽出する方法|grep ^の正規表現と実務活用例
「grepで特定の文字から始まる行だけを抽出したい」
「^記号をgrepで使う方法がわからない」
Linuxの grep コマンドで「特定の文字から始まる行」を抽出するには、正規表現の ^(キャレット)記号を使います。
^ は「行の先頭」を意味するアンカーで、設定ファイルの解析やログの絞り込みで頻繁に使います。

この記事では、grep ^(キャレット)を使って行頭から始まる文字列を抽出する方法を解説します。

【この記事でわかること】
・^記号で行の先頭から始まる文字列を抽出する方法
・-iオプションと組み合わせて大文字・小文字を区別しない検索
・設定ファイルから有効な設定行だけを抽出する実用例
・^と$(行末)を組み合わせた応用パターン

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

grep ^(キャレット)で行頭から始まる文字列を抽出する

正規表現の ^(キャレット)は「行の先頭」を表す特殊記号です。
grep "^文字列" とすることで、指定した文字列で始まる行だけを抽出できます。

1. 基本的な使い方

# "Ja" を含む行を全て抽出 $ grep -i "ja" country_list.txt Japan Azerbaijan Jamaica Libyan Arab Jamahiriya # "Ja" から始まる行のみを抽出 $ grep -i "^ja" country_list.txt Japan Jamaica

^ なしの場合は「含む」検索になり、AzerbaijanJamahiriya も一緒にヒットします。
^ja にすることで「ja で始まる行」だけに絞れます。

2. 大文字・小文字を区別しない検索(-iオプション)

# 大文字でも小文字でも "JA" で始まる行を抽出 $ grep -i "^ja" country_list.txt Japan Jamaica

実務での活用例

1. 設定ファイルからコメント行を除いた有効設定だけを表示する

# から始まる行がコメントの場合、grep -v "^#" で除外できます。

# コメント行と空行を除いて設定のみ表示 $ grep -v "^#" /etc/sshd_config | grep -v "^$" Port 22 Protocol 2 PermitRootLogin no PasswordAuthentication no

grep -v "^#" でコメント行を除外し、grep -v "^$" で空行を除外しています。

2. ログから特定のHTTPステータスで始まる行を抽出する

# アクセスログから"404"エラーの行を検索(行頭ではなく含む検索) $ grep " 404 " /var/log/httpd/access_log # "ERROR:"から始まるログ行を抽出 $ grep "^ERROR:" application.log

3. ファイル内の空行の数を数える

# 空行(^ と $ が隣り合う)の数をカウント $ grep -c "^$" config_file.txt 12

応用:^と$を組み合わせたパターン

パターン 意味 使用例
^文字列 行頭から始まる grep "^server" nginx.conf
文字列$ 行末で終わる grep "\.log$" filelist.txt
^$ 空行 grep -v "^$" file.txt(空行を除外)
^# コメント行 grep -v "^#" /etc/sshd_config

本記事のまとめ

やりたいこと コマンド
"ja"で始まる行を抽出(大文字小文字区別なし) grep -i "^ja" ファイル名
コメント行(#始まり)を除外 grep -v "^#" ファイル名
空行を除外 grep -v "^$" ファイル名
空行の数を数える grep -c "^$" ファイル名
.logで終わる行を抽出 grep "\.log$" ファイル名

grepの正規表現を使いこなして、ログ調査・設定管理を効率化しませんか?

^や$のような正規表現の基礎を知っておくと、grepだけでかなり高度なテキスト処理ができるようになります。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。