言語化の練習

プログラマの日記です。プログラミング・読書感想・雑談が中心です。楽しく働くためにどうしたらよいか日々試行錯誤しています。

awkコマンドでデータがうまく取れないときに疑うべきこと

awkコマンドでデータがうまくとれなくて、少しハマりました。

インプットファイル

test.csv

2018/4/1 00:00,user_A,OK
2018/4/1 01:00,user_B,OK
2018/4/1 02:00,user_C,
2018/4/2 00:00,user_D,OK
2018/4/2 01:00,user_E,
2018/4/2 02:00,user_F,

上記csvファイルから、3カラム目に値があるユーザ(2カラム目)を抽出したい。

コマンドと期待する結果

$ cat test.csv | awk -F, '$3!=null {print $2}'

user_A
user_B
user_D

↑のような感じになると思うが、なぜかインプットファイルの全件が出力される。

原因

改行コードがCRLFでした。LFに変換したら意図する結果が取れました。

【LINE BOT】Messaging API でstatusCode:427エラー

LINEのMessaging APIでテキストを送信しようとした際に、下記エラーが発生。
APIリファレンス

エラーメッセージ

{
  "statusCode":"427",
  "statusMessage":"Channel has not proper permissions. channelId : XXXXXXXXXX, required permissions : [ BOT ]"
}

「チャンネルにBOT権限がありません」と言われているように見えますが、 管理画面を確認したところ、BOT権限は付与されている。。。

原因

BOT API(旧API)形式のオブジェクトを設定していました。
Messaging APIの形式のオブジェクトを設定して送信したところ動作しました!

エラーメッセージから原因が特定できずハマりましたorz

あまり需要ないかもしれませんが、
BOT APIからMessaging APIに移行した際に注意が必要かもしれません。