• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マッチするユーザのアドレス抜き出し方法)

マッチするユーザのアドレス抜き出し方法

このQ&Aのポイント
  • ユーザ名のあるfile.1からfile.2に記述されているユーザのアドレスを抜き出す方法を教えてください。
  • 現在のスクリプトではADDRESの部分が定義されず、addres-fileにはユーザ名しか出てきません。$USERが読み込まれていないようなのです。どうしたらよいでしょうか。
  • 最終的には、addres-fileにはユーザ名と対応するアドレスが出力されるようにしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#136147
noname#136147
回答No.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 は消してから実行してくださいね。

r-linux
質問者

お礼

ありがとうございます!!以下のようになりました。 sumida mailaddres sumida hayashi hamada yoshida me-ruadoresu sawada me-ruadoresu sumida mailaddres わかりやすく簡単にしたつもりがご面倒をおかけしました。 実はもうちょっと複雑なファイルを操作しているのですが おかげさまで近い内容になってきました。 ありがとうございました。

その他の回答 (1)

noname#136147
noname#136147
回答No.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 ========================================= こんな感じで出来そうですが。

r-linux
質問者

お礼

回答ありがとうございます。 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 どうしたら希望通りになるのでしょうか

関連するQ&A