[Linuxコマンド]awk

AWKとは

今回はAWK。文字列を読み込んで、なんらか処理できるコマンド。

TSVファイルやCSVファイルなどから情報を取得する時に便利。

awk -F "区切り文字" '{なんらか処理}' 対象ファイルパス

Step 0. 準備

以下のようなCSV, TSVファイルからデータを取得してみる

awk-test.csv

key1,val1
key2,val2
key3,val3
key3,val4

awk-test.tsv

key1	val1
key2	val2
key3	val3
key3	val4

Step 1. keyの列だけ取得

awk -F "," '{print $1}' awk-test.csv

-F “,” 区切り文字のオプション
‘{print $1}’ 処理内容 一番目の要素を表示する
awk-test.csv 対象ファイルパス

key1
key2
key3
key3

Step 2. valの列だけ取得

awk -F "," '{print $2}' awk-test.csv
val1
val2
val3
val4

Step 3. 1の結果から重複を除去

awk -F "," '{print $1}' awk-test.csv | uniq
key1
key2
key3

Step 4. keyの列だけ取得(TSVファイルから)

 awk -F " " '{print $1}' awk-test.tsv
key1
key2
key3
key3

Step 5. keyの列だけ取得(TSVファイルから)

区切り文字はデフォルト空白orタブなので-Fオプションなしでも結果は同じ

awk '{print $1}' awk-test.tsv
key1
key2
key3
key3

コメントを残す

メールアドレスが公開されることはありません。

ABOUT US
little
15年以上プログラマーをしているエンジニアです。Kotlin, Java, Python, C++を使用したServerSideの開発に携わってきました。とりあえずやってみるスタイルで記事を更新していきます。