【Linux入門】awkコマンドの使い方をわかりやすく解説!列抽出・条件指定の基本

Linux

どーも!marusukeです!

この記事では

  • awkでできること
  • awkの使用例
  • awkのオプション

をわかりやすく解説します!

awkコマンドでできること

awk '条件 {処理}' ファイル名

awkはテキストデータを加工・抽出するためのコマンドです。
ログファイルやCSV、スペース区切りのデータなどから、特定の列だけを表示したり、条件に合う行だけを抽出したりできます。

Linuxでは、ログ解析やデータ処理などで非常によく使われるツールです。

awkの特徴は以下です。

  • 列(フィールド)単位で処理できる
  • 条件を指定して行を抽出できる
  • 計算や文字列処理ができる
  • シェルスクリプトと組み合わせて使える

awkでは、スペース区切りのデータを自動的に「列」として扱います。
例えば $1 は1列目、$2 は2列目、$0 は行全体を意味します。

用語解説:フィールド

フィールドとは、1行のデータを区切り文字で分割した「列」のことです。awkではスペースやタブを区切りとして扱い、1列目を$1、2列目を$2のように参照できます。


awkコマンドの使用例

例えば、users.txt に次のようなデータがあるとします。

$ cat users.txt
tanaka 25 tokyo
sato 30 osaka
suzuki 28 nagoya

2列目(年齢)だけ表示する場合は次のように書きます。

$ awk '{print $2}' users.txt
25
30
28

このコマンドでは

  • {print $2} → 2列目を表示
  • users.txt → 対象ファイル

という意味になります。

例えば「30歳以上だけ表示する」こともできます。

$ awk '$2 >= 30 {print $1}' users.txt
sato

これは「2列目が30以上なら1列目を表示」という意味です。


awkコマンドのオプション

オプション説明
-F区切り文字を指定する
-vawk内で使う変数を指定する
-fawkスクリプトファイルを指定する

区切り文字を変更する例(CSV)

CSVファイルの場合は , を区切りにします。

awk -F "," '{print $1}' data.csv

これにより、カンマ区切りの1列目を取得できます。


awkは、Linuxの**三種の神器(grep / sed / awk)**の1つで、ログ解析やデータ処理で非常に重要なコマンドです。最初は難しく見えますが、「列を取り出すツール」と覚えると理解しやすいですよ!

以上です!
ここまで読んでいただきありがとうございました!

コメント

タイトルとURLをコピーしました