【Linux】AWKコマンドチートリスト - j-komatsu/myCheatSheet GitHub Wiki
AWKコマンドチートリスト
目的
AWKコマンドを利用して、テキスト処理やデータ解析を効率的に行う。
インデックス
- ファイルの特定カラムを抽出
- 条件に基づくフィルタリング
- カラムの合計を計算
- カラムの平均値を計算
- 文字列の置換
- 行番号を付与
- 特定文字列を含む行を強調表示
- カラムを再配置
- 複数ファイルを処理
- 行ごとのカウント
1. ファイルの特定カラムを抽出
- 目的: 指定したカラムだけを表示する。
- 構文:
awk '{print $1}' file
- 使用例: ファイル内の1列目だけを抽出。
2. 条件に基づくフィルタリング
- 目的: 条件に一致する行を表示する。
- 構文:
awk '$3 > 100' file
- 使用例: 3列目が100を超える行を出力。
3. カラムの合計を計算
- 目的: 特定カラムの合計値を求める。
- 構文:
awk '{sum += $2} END {print sum}' file
- 使用例: 2列目の合計を計算。
4. カラムの平均値を計算
- 目的: 特定カラムの平均値を求める。
- 構文:
awk '{sum += $2; count++} END {print sum/count}' file
- 使用例: 2列目の平均値を計算。
5. 文字列の置換
- 目的: 特定の文字列を別の文字列に置換する。
- 構文:
awk '{gsub(/old/, "new"); print}' file
- 使用例: ファイル内の「old」を「new」に置換。
6. 行番号を付与
- 目的: 各行に行番号を追加する。
- 構文:
awk '{print NR, $0}' file
- 使用例: 行番号を出力と一緒に表示。
7. 特定文字列を含む行を強調表示
- 目的: 特定文字列を含む行を見やすくする。
- 構文:
awk '/pattern/ {print "***", $0, "***"}' file
- 使用例: 「pattern」を含む行を強調。
8. カラムを再配置
- 目的: カラムの順序を変更する。
- 構文:
awk '{print $2, $1}' file
- 使用例: 1列目と2列目を入れ替え。
9. 複数ファイルを処理
- 目的: 複数ファイルをまとめて処理する。
- 構文:
awk 'FNR==1 {print "Processing: " FILENAME} {print $0}' file1 file2
- 使用例: ファイル名を表示しつつ内容を処理。
10. 行ごとのカウント
- 目的: 出現回数をカウントして表示する。
- 構文:
awk '{count[$1]++} END {for (key in count) print key, count[key]}' file
- 使用例: 1列目の値ごとに出現回数を表示。