先に結論

ファイルを読み込む時は改行コードを確認しよう (受領したものは特に)

何があったか

1 Cognitoユーザー登録お願いできる?リストはこれね

[cloudshell-user@ip-10-130-54-13 ~]$ cat list.csv 
hogehoge,hoge1,hoge1@example.com,+8180XXXXYYYY
hogehoge,hoge2,hoge2@example.com,+8180XXXXYYYY
hogehoge,hoge3,hoge3@example.com,+8180XXXXYYYY

2 はいー、下記形式ね

ユーザープールID,ユーザー名,メールアドレス,電話番号

3 ユーザー登録コマンド作成しよう、下記でいけるかな

cat list.csv | awk -F, '{print "aws cognito-idp admin-create-user --username "$2" --user-attributes Name=email,Value="$3" Name=email_verified,Value=true Name=phone_number,Value=""$4"" Name=phone_number_verified,Value=true --message-action SUPPRESS --desired-delivery-mediums EMAIL --temporary-password hogefuga --user-pool-id "$1}'

4 実行してみる、、 あれ?

[cloudshell-user@ip-10-130-54-13 ~]$ cat list.csv | awk -F, '{print "aws cognito-idp admin-create-user --username "$2" --user-attributes Name=email,Value="$3" Name=email_verified,Value=true Name=phone_number,Value=""$4"" Name=phone_number_verified,Value=true --message-action SUPPRESS --desired-delivery-mediums EMAIL --temporary-password hogefuga --user-pool-id "$1}'
" Name=phone_number_verified,Value=true --message-action SUPPRESS --desired-delivery-mediums EMAIL --temporary-password hogefuga --user-pool-id hogehoge,Value="+8180XXXXYYYY
" Name=phone_number_verified,Value=true --message-action SUPPRESS --desired-delivery-mediums EMAIL --temporary-password hogefuga --user-pool-id hogehoge,Value="+8180XXXXYYYY
" Name=phone_number_verified,Value=true --message-action SUPPRESS --desired-delivery-mediums EMAIL --temporary-password hogefuga --user-pool-id hogehoge,Value="+8180XXXXYYYY
[cloudshell-user@ip-10-130-54-13 ~]$ 

5 聞いたり、調べたりして改行コードが違うんじゃないかという話に

6 改行コード見てみる(Windows(CRLF)になってますね、、)

[cloudshell-user@ip-10-130-54-13 ~]$ od -c list.csv 
0000000   h   o   g   e   h   o   g   e   ,   h   o   g   e   1   ,   h
0000020   o   g   e   1   @   e   x   a   m   p   l   e   .   c   o   m
0000040   ,   +   8   1   8   0   X   X   X   X   Y   Y   Y   Y  \r \n
0000060   h   o   g   e   h   o   g   e   ,   h   o   g   e   2   ,   h
0000100   o   g   e   2   @   e   x   a   m   p   l   e   .   c   o   m
0000120   ,   +   8   1   8   0   X   X   X   X   Y   Y   Y   Y  \r \n
0000140   h   o   g   e   h   o   g   e   ,   h   o   g   e   3   ,   h
0000160   o   g   e   3   @   e   x   a   m   p   l   e   .   c   o   m
0000200   ,   +   8   1   8   0   X   X   X   X   Y   Y   Y   Y  \r \n
0000220
[cloudshell-user@ip-10-130-54-13 ~]$ 

7 依頼元はWindowsで実施環境はUnixだったので改行コードを変更し、再度実施してみる

[cloudshell-user@ip-10-130-54-13 ~]$ tr -d "\r" <list.csv >tmp.csv
[cloudshell-user@ip-10-130-54-13 ~]$ cat tmp.csv | awk -F, '{print "aws cognito-idp admin-create-user --username "$2" --user-attributes Name=email,Value="$3" Name=email_verified,Value=true Name=phone_number,Value=""$4"" Name=phone_number_verified,Value=true --message-action SUPPRESS --desired-delivery-mediums EMAIL --temporary-password hogefuga --user-pool-id "$1}'
aws cognito-idp admin-create-user --username hoge1 --user-attributes Name=email,Value=hoge1@example.com Name=email_verified,Value=true Name=phone_number,Value="+8180XXXXYYYY" Name=phone_number_verified,Value=true --message-action SUPPRESS --desired-delivery-mediums EMAIL --temporary-password hogefuga --user-pool-id hogehoge
aws cognito-idp admin-create-user --username hoge2 --user-attributes Name=email,Value=hoge2@example.com Name=email_verified,Value=true Name=phone_number,Value="+8180XXXXYYYY" Name=phone_number_verified,Value=true --message-action SUPPRESS --desired-delivery-mediums EMAIL --temporary-password hogefuga --user-pool-id hogehoge
aws cognito-idp admin-create-user --username hoge3 --user-attributes Name=email,Value=hoge3@example.com Name=email_verified,Value=true Name=phone_number,Value="+8180XXXXYYYY" Name=phone_number_verified,Value=true --message-action SUPPRESS --desired-delivery-mediums EMAIL --temporary-password hogefuga --user-pool-id hogehoge
[cloudshell-user@ip-10-130-54-13 ~]$ 

終わりに

もう忘れませんように、、