- ベストアンサー
マッチするユーザのアドレス抜き出し方法
- ユーザ名のあるfile.1からfile.2に記述されているユーザのアドレスを抜き出す方法を教えてください。
- 現在のスクリプトではADDRESの部分が定義されず、addres-fileにはユーザ名しか出てきません。$USERが読み込まれていないようなのです。どうしたらよいでしょうか。
- 最終的には、addres-fileにはユーザ名と対応するアドレスが出力されるようにしたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#1です。 file.2の中身はタイプミスだと思っていたのですが・・・ ==== file.2 ========================== me-ruadoresu sawada, yoshida mailaddres sumida hayashi hamada ====================================== の区切り文字が'全角スペース'なのか'カンマ'なのか、 もしくは半角スペースなのか、 フォーマットをきちんと決めてからスクリプトを作成しないと 対応が非常に面倒です。 (#1のスクリプトは半角スペースに直してから実行しました) ちなみに全角スペース(現状のfile.2)の場合は、 ADDRES=`grep $LINE file.2 | awk -F ' ' '{print $1}'` で動くと思います。 あと、おかしくなった addres-file は消してから実行してくださいね。
その他の回答 (1)
もっと簡単に ====== Shell Script ===================== while read LINE do USER=$LINE ADDRES=`grep $LINE file.2 | awk '{print $1}'` echo $USER $ADDRES >> addres-file done < file.1 ========================================= こんな感じで出来そうですが。
お礼
回答ありがとうございます。 while read LINE do USER=$LINE ADDRES=`grep $LINE file.2 | awk '{print $1}'` echo $USER $ADDRES >> addres-file done < file.1 としたところ、 以下のようになってしまいます。 yoshida sawada sumida yoshida me-ruadoresu sawada, yoshida sawada me-ruadoresu sawada, yoshida sumida mailaddres sumida hayashi hamada どうしたら希望通りになるのでしょうか
お礼
ありがとうございます!!以下のようになりました。 sumida mailaddres sumida hayashi hamada yoshida me-ruadoresu sawada me-ruadoresu sumida mailaddres わかりやすく簡単にしたつもりがご面倒をおかけしました。 実はもうちょっと複雑なファイルを操作しているのですが おかげさまで近い内容になってきました。 ありがとうございました。