カテゴリ: Linuxコマンド集 更新日: 2026/03/09

awk -Fオプションの使い方を完全ガイド!初心者でもわかるフィールド区切り文字の基本

awk -Fオプション|フィールド区切り文字を指定する方法
awk -Fオプション|フィールド区切り文字を指定する方法

先生と生徒の会話形式で理解しよう

生徒

「Linuxでファイルの中身を行ごとに見るだけじゃなくて、表みたいに扱う方法ってありますか?」

先生

「ありますよ。awkコマンドを使うと、文字の区切りごとにデータを扱えます。」

生徒

「区切りって何ですか?カンマとかですか?」

先生

「そうです。その区切り文字を指定するのが-Fオプションです。今日はそこを丁寧に説明します。」

1. awkコマンドとは?

1. awkコマンドとは?
1. awkコマンドとは?

awkコマンドは、Linuxでテキストファイルやデータを加工・抽出するためのコマンドです。ログファイル、CSVファイル、設定ファイルなど、文字が並んだデータを扱うときによく使われます。

パソコン初心者の方は「黒い画面で文字を打つなんて難しそう」と感じるかもしれませんが、awkは考え方がとてもシンプルです。1行ずつ読んで、必要な部分だけ取り出す、それだけです。

エクセルで表を作って、列ごとにデータを見るイメージに近いと考えると分かりやすいです。

2. フィールドと区切り文字の考え方

2. フィールドと区切り文字の考え方
2. フィールドと区切り文字の考え方

awkを理解するうえで大切なのが「フィールド」と「区切り文字」です。

フィールドとは、1行の中を分割した小さな部品のことです。その分割の目印になる文字が区切り文字です。

たとえば「りんご,みかん,ばなな」という文字列があった場合、カンマ「,」が区切り文字で、「りんご」「みかん」「ばなな」がフィールドになります。

人が目で見て分けている作業を、awkは自動でやってくれると考えてください。

3. -Fオプションとは何をするもの?

3. -Fオプションとは何をするもの?
3. -Fオプションとは何をするもの?

-Fオプションは、フィールド区切り文字を指定するためのオプションです。何も指定しない場合、awkは空白(スペースやタブ)を区切りとして扱います。

しかし、CSVファイルのようにカンマ区切りのデータや、コロン区切りの設定ファイルでは、そのままでは正しく分割できません。

そこで-Fを使って、「この文字で区切ってください」と明示的に教えます。これにより、awkは人が思っている通りにデータを分解できます。

4. カンマ区切りのデータを扱う基本例

4. カンマ区切りのデータを扱う基本例
4. カンマ区切りのデータを扱う基本例

まずは一番よく使われる、カンマ区切りの例を見てみましょう。次のようなCSV形式のファイルがあるとします。


cat fruits.csv
apple,100,red
orange,80,orange
banana,120,yellow

このファイルから「1列目(名前)」だけを表示したい場合、-F,を使います。


awk -F, '{print $1}' fruits.csv
apple
orange
banana

$1は「1番目のフィールド」という意味です。2番目なら$2、3番目なら$3になります。

5. コロン区切りやスラッシュ区切りの例

5. コロン区切りやスラッシュ区切りの例
5. コロン区切りやスラッシュ区切りの例

Linuxでは、コロン「:」で区切られたファイルもよく登場します。代表的なのがユーザー情報を持つファイルです。


echo "user1:x:1000:1000:/home/user1:/bin/bash"
user1:x:1000:1000:/home/user1:/bin/bash

ユーザー名だけを取り出したい場合は、次のように書きます。


echo "user1:x:1000:1000:/home/user1:/bin/bash" | awk -F: '{print $1}'
user1

また、パスのようにスラッシュ「/」で区切られている文字列も同じ考え方で扱えます。


echo "/usr/local/bin" | awk -F/ '{print $3}'
local

6. 複数のフィールドを同時に表示する方法

6. 複数のフィールドを同時に表示する方法
6. 複数のフィールドを同時に表示する方法

-Fオプションを使えば、複数のフィールドを組み合わせて表示することも簡単です。

たとえば、商品名と価格を同時に表示したい場合は、次のように書きます。


awk -F, '{print $1, $2}' fruits.csv
apple 100
orange 80
banana 120

カンマ区切りのデータを、スペース区切りで見やすく表示できました。エクセルで列を選んで表示する感覚に近いです。

7. -Fオプションと他のawk機能の組み合わせ

7. -Fオプションと他のawk機能の組み合わせ
7. -Fオプションと他のawk機能の組み合わせ

-Fは他のawkの機能と組み合わせることで、さらに便利になります。

たとえば「価格が100以上の行だけ表示したい」といった条件も指定できます。


awk -F, '$2 >= 100 {print $1, $2}' fruits.csv
apple 100
banana 120

ここで$2 >= 100は条件を表しています。「2番目のフィールドが100以上」という意味です。

このように、-Fで正しく区切りを指定することで、条件処理も直感的に書けるようになります。

8. よくある間違いと初心者がつまずくポイント

8. よくある間違いと初心者がつまずくポイント
8. よくある間違いと初心者がつまずくポイント

初心者の方がよく間違えるのは、区切り文字を指定し忘れることです。その場合、思った位置のデータが取れません。

また、-F,のように区切り文字はクォートで囲まなくても使えることが多いですが、空白や特殊な文字を使う場合は注意が必要です。

結果がずれたときは、「このデータは何で区切られているか」を落ち着いて確認することが大切です。

関連記事:
カテゴリの一覧へ
新着記事
New1
テキスト・データ処理
grep -cオプションの使い方を完全ガイド!Linuxで一致した行数をカウントする方法
New2
ファイル・ディレクトリ操作
stat -cオプションの使い方を徹底解説!Linuxで出力フォーマットを自由に指定しよう
New3
ファイル・ディレクトリ操作
basenameのSUFFIX指定で拡張子を除いてファイル名を取得する方法を解説!初心者向けLinuxコマンド講座
New4
テキスト・データ処理
tail -fオプションの使い方を解説!Linuxでログをリアルタイム監視する基本
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cdコマンドとは?Linuxでディレクトリを移動する基本を初心者向けに解説
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門