【Linux】AWKコマンドチートリスト - j-komatsu/myCheatSheet GitHub Wiki

AWKコマンドチートリスト

目的

AWKコマンドを利用して、テキスト処理やデータ解析を効率的に行う。


インデックス

  1. ファイルの特定カラムを抽出
  2. 条件に基づくフィルタリング
  3. カラムの合計を計算
  4. カラムの平均値を計算
  5. 文字列の置換
  6. 行番号を付与
  7. 特定文字列を含む行を強調表示
  8. カラムを再配置
  9. 複数ファイルを処理
  10. 行ごとのカウント

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列目の値ごとに出現回数を表示。