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

awkコマンドとは?Linuxでテキストを加工・抽出する基本を完全ガイド

awkコマンドとは?Linuxでテキストを加工・抽出する基本
awkコマンドとは?Linuxでテキストを加工・抽出する基本

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

生徒

「Linuxで文字がたくさん並んだデータを見ると、必要なところだけ取り出したくなるんですが、どうすればいいですか?」

先生

「そんなときに活躍するのが awk コマンドです。文章や数字の列から、必要な部分だけを取り出せます。」

生徒

「黒い画面で操作するって聞くと、難しそうで不安です……。」

先生

「大丈夫です。最初は“表を切り取る道具”くらいの感覚で覚えれば十分ですよ。」

1. awkコマンドとは?

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

awkコマンドは、Linuxでテキストファイルを加工・抽出するための基本コマンドです。ログファイル、CSV形式のデータ、スペース区切りの一覧表など、「文字が横に並んだデータ」を扱うのが得意です。

難しく聞こえますが、イメージとしては表計算ソフトで列だけを切り取る作業に近いです。マウスの代わりに文字で命令するだけ、と考えると理解しやすくなります。

2. テキスト処理が必要になる理由

2. テキスト処理が必要になる理由
2. テキスト処理が必要になる理由

Linuxでは設定情報や動作の記録がテキストデータとして保存されます。これらは人が読める文字ですが、そのままでは量が多く、目的の情報を探すのが大変です。

awkを使うと、「この列だけ見たい」「条件に合う行だけ表示したい」といった作業を一瞬で行えます。これは手作業で紙の資料を探すのと、検索機能を使う違いのようなものです。

3. awkの基本構文をやさしく理解する

3. awkの基本構文をやさしく理解する
3. awkの基本構文をやさしく理解する

awkの基本形はとてもシンプルです。「どの列を表示するか」を指定します。列とは、空白で区切られた文字のまとまりのことです。


ls -l
total 8
-rw-r--r-- 1 user user  120 Jan 10 sample.txt
drwxr-xr-x 2 user user 4096 Jan 12 data

この表示では、左から1列目、2列目……と並んでいます。awkでは、$1 が1列目、$2 が2列目を意味します。

4. 列を指定して表示してみよう

4. 列を指定して表示してみよう
4. 列を指定して表示してみよう

まずは一番よく使う例です。ファイル一覧からファイル名だけを表示します。


ls -l | awk '{print $9}'
sample.txt
data

縦棒の記号は「前の結果を次に渡す」という意味です。難しく考えず、「一覧表をawkに渡している」と思ってください。

5. 条件をつけて行を絞り込む

5. 条件をつけて行を絞り込む
5. 条件をつけて行を絞り込む

awkは条件指定もできます。たとえば「サイズが100より大きい行だけ表示する」といった操作です。


ls -l | awk '$5 > 100 {print $9}'
sample.txt

ここでは5列目がファイルサイズです。「数が100より大きいものだけ」という条件を付けています。

6. CSVデータを扱うときの考え方

6. CSVデータを扱うときの考え方
6. CSVデータを扱うときの考え方

CSVはカンマで区切られたテキストです。awkでは区切り文字を指定できます。これは「区切り線の種類を教える」イメージです。


cat data.csv | awk -F, '{print $1,$3}'
apple 100
orange 200

-Fは「区切り文字」を意味します。ここではカンマを指定しています。

7. awkとgrepの違い

7. awkとgrepの違い
7. awkとgrepの違い

grepは「文字を探す」のが得意で、awkは「列を扱う」のが得意です。文章の中から単語を探すならgrep、表の中から列を抜き出すならawk、という使い分けがおすすめです。

初心者のうちは「awkは表専用」と覚えておくだけでも十分役立ちます。

8. よくある失敗と注意点

8. よくある失敗と注意点
8. よくある失敗と注意点

最初に多い失敗は、「列番号がずれる」ことです。空白の数や区切り文字を意識しないと、思った列が取れません。

結果がおかしいときは、まず元のデータをよく観察することが大切です。紙に印を付けて列を数える感覚で確認してみてください。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
find -maxdepthオプションの使い方を完全ガイド!検索するディレクトリの深さを制限する方法
New2
ファイル・ディレクトリ操作
Linuxのls --full-timeオプションを完全ガイド!初心者でもわかるタイムスタンプのフル表示方法
New3
テキスト・データ処理
awkコマンドとは?Linuxでテキストを加工・抽出する基本を完全ガイド
New4
ファイル・ディレクトリ操作
Linuxのls -Rオプションを完全ガイド!初心者でもわかるディレクトリの階層表示方法
人気記事
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
ファイル・ディレクトリ操作
statコマンドとは?Linuxでファイルやディレクトリの詳細情報を確認する基本