edy hub

プログラミングやライフスタイルについて書き綴っています

awkコマンドを理解していく

awsとの接触

はじめてawkコマンドと出会ったときに、衝撃を受けた。
意味分からんと。 でもこれを書く先輩エンジニアに憧れも抱いた...

mail_users=(`awk 'F==0{a[$1]=$2;next}{print $1 "\t" a[$1] "\t" $2}' <(cat employee.csv | awk -F',' '{print $1" " $8}' | sed -e '1d' -e '$d') F=1 <(/Users/guest/.nodebrew/current/bin/node sample.js | sed -e 's/[^0-9]//g' | sed -e 's/0*\([0-9]*[0-9]$\)/\1/g' | sort -nu)`)

※一部ファイル名とか変えてます

ということで、awk芸人になっていきましょう。

序章

awkはテキストファイルの一行毎に処理を行うスクリプト言語

awk 'パターン {アクション}' ファイル名」で、テキストファイルを1行ずつ読み、パターンに合致した行に対して、アクションで指定された内容を実行する。

基本的なオプション

オプション 意味
-f ファイル名 awkスクリプトが書かれたファイルを指定する
-F 区切り文字 区切り文字を指定する(デフォルトは空白文字)
-v 変数名=値 変数を定義する

オプションである -F'[フィールド区切り文字]' を指定しない場合、 区切り文字には、タブまたは半角スペースが選択される。

awk '{print $2,$3}' sample.csv # 2,3列目

awk -F, '{print $2,$3}' sample.csv # ,で区切って 2,3列目を出力

参考

qiita.com

qiita.com

www.techscore.com