実践的awk12選

AWS

awk は強力なテキスト処理ツールで、テキストファイルや標準入力からデータを抽出したり操作したりするために使用されます。以下に、実践的な awk の使い方のいくつかを示します。

基本的な使い方

1. 特定の列を表示する

awk '{print $1}' filename

これは、ファイル filename の各行の最初の列を表示します。

2. 区切り文字を指定して特定の列を表示する

awk -F":" '{print $1, $3}' /etc/passwd

/etc/passwd ファイルをコロンで区切り、第1列と第3列を表示します。

3. 条件に基づいて行をフィルタリングする

awk '$3 > 1000' /etc/passwd

第3列の値が1000より大きい行を表示します。

高度な使い方

4. 合計を計算する

awk '{sum += $1} END {print sum}' filename

ファイル filename の第1列の合計を計算して表示します。

5. 平均を計算する

awk '{sum += $1; count += 1} END {print sum / count}' filename

第1列の平均値を計算して表示します。

6. 条件付きで合計を計算する

awk '$2 == "category" {sum += $3} END {print sum}' filename

第2列が “category” である行の第3列の合計を計算して表示します。

7. パターンに一致する行をカウントする

awk '/pattern/ {count++} END {print count}' filename

パターン “pattern” に一致する行の数をカウントして表示します。

8. 特定のフィールドを含む行を抽出する

awk '$2 == "value"' filename

第2列が “value” である行を表示します。

9. フィールドの値を置換する

awk '{gsub(/old/, "new"); print}' filename

各行のフィールド内の “old” を “new” に置換して表示します。

複雑な例

10. テーブルの集計

awk -F"," '{arr[$1]+=$2} END {for (i in arr) print i, arr[i]}' filename.csv

CSVファイル filename.csv の第1列をキー、第2列を値として、キーごとに値を集計して表示します。

11. 列の再フォーマット

awk '{print $3, $2, $1}' filename

第3列、第2列、第1列の順にフィールドを再フォーマットして表示します。

12. 複数条件のフィルタリング

awk '$1 > 100 && $2 == "status"' filename

第1列が100より大きく、第2列が “status” である行を表示します。

まとめ

awk は非常に強力で柔軟なツールで、テキスト処理やデータ解析において多くの場面で役立ちます。上記の例はその一部に過ぎません。awk の詳細については man awk コマンドを使用してマニュアルページを参照することをお勧めします。

コメント

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