1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

こんにちは!
久々に awk コマンドを使ったので、備忘録としてまとめようと思います。
便利だけど、たまにしか使わないので、よく忘れます。。

awk ってどんなコマンド?

awk は、テキストファイルを読み込んで、指定したパターンにマッチする行に対してアクションを実行するコマンドです。
例えば、「特定の条件に合致する行だけを抽出したい」「ファイルの中身をカンマ区切りで出力したい」といった処理を、簡単に行うことができます。

awk の基本的な使い方

awk の基本的な構文は以下の通りです。

awk 'パターン { アクション }' 入力ファイル
  • パターン: 処理対象となる行を指定するための条件を記述します。
  • アクション: パターンに合致した行に対して実行する処理を記述します。
  • 入力ファイル: 処理対象のテキストファイルを指定します。

パターンとアクションは、それぞれ省略可能です。

パターンを省略した場合: 全ての行に対してアクションが実行されます。
アクションを省略した場合: パターンに合致した行がそのまま出力されます。

簡単な例

例えば、以下のような内容の sample.txt というテキストファイルがあるとします。

apple,100,red
banana,50,yellow
orange,80,orange

1. 特定の列だけを抽出する

カンマ区切りのファイルから、特定の列だけを抽出したい場合は、 $1$2 のようにフィールド指定を行います。
$1 は1列目、 $2 は2列目を表します。

$ awk -F ',' '{ print $1 }' sample.txt 
apple
banana
orange

2. 特定の文字列を含む行だけを抽出する

sample.txt から、"banana" という文字列を含む行だけを抽出したい場合は、以下のように記述します。

$ awk '/banana/ { print $0 }' sample.txt
banana,50,yellow

/banana/ がパターンに該当し、 print $0 がアクションに該当します。
$0 は行全体を表すので、パターンに合致した行全体が出力されます。

3. 特定の条件に合致する行だけを抽出する

sample.txt から、2列目の値が 70 より大きい行だけを抽出したい場合は、以下のように記述します。

$ awk -F ',' '$2 > 70 { print $0 }' sample.txt
apple,100,red
orange,80,orange

4. 各行に処理を加えて出力する

sample.txt の各行に "fruit: " という文字列を先頭に追加して出力したい場合は、以下のように記述します。

$ awk '{ print "fruit: " $0 }' sample.txt
fruit: apple,100,red
fruit: banana,50,yellow
fruit: orange,80,orange

5. 合計値を計算する

sample.txt の内容について、合計を計算する場合は、以下のように記述します。

$ awk -F ',' '$2 { sum += $2 } END { print sum }' sample.txt
230

6. 特定の条件に合致した合計値を計算する

sample.txt の内容について、2番目の数値が70より大きい数の合計を計算する場合は、以下のように記述します。

$ awk -F ',' '$2 > 70 { sum += $2 } END { print sum }' sample.txt
180

まとめ

今回は awk コマンドの基本的な使い方について、復習を兼ねてまとめてみました。
awk は、一見すると難しそうに見えますが、基本的な使い方さえ押さえておけば、非常に強力なテキスト処理ツールとして活用できます。

この備忘録が、(私を含めて)awk を久しぶりに使う方の助けになれば幸いです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?