どーも!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 | 区切り文字を指定する |
| -v | awk内で使う変数を指定する |
| -f | awkスクリプトファイルを指定する |
区切り文字を変更する例(CSV)
CSVファイルの場合は , を区切りにします。
awk -F "," '{print $1}' data.csv
これにより、カンマ区切りの1列目を取得できます。
awkは、Linuxの**三種の神器(grep / sed / awk)**の1つで、ログ解析やデータ処理で非常に重要なコマンドです。最初は難しく見えますが、「列を取り出すツール」と覚えると理解しやすいですよ!
以上です!
ここまで読んでいただきありがとうございました!



コメント