shell脚本 - for循环 - 根据用户从文件输入的grep邮件id

时间:2015-03-22 06:33:33

标签: linux bash shell email loops

我在文件中拥有用户ID和等效邮件ID。根据用户输入(即,我们将输入" apple")它应该只grep邮件ID(仅限apple@gmail.com)并存储在email = $(...)

中间用户ID&邮件ID在文件中有一个空格

邮件ID在文件中

user_id's   mail_id's

apple apple@gmail.com
mango 123@ymail.com
cat cat@hotmail.com
etc...

样品

email=$(....)

msg= dont run jobs in login node

echo -e "$msg" |mail -s "RAM limit exceeded in iitmlogin4" "$email"

2 个答案:

答案 0 :(得分:0)

您的代码可以使用awk

# userid to search
userid="apple"

email=$(awk -v u="$userid" '$1 == u {print $1}' mail.file)

msg='dont run jobs in login node'

echo -e "$msg" | mail -s "RAM limit exceeded in iitmlogin4" "$email"

答案 1 :(得分:0)

为什么不是一个功能?

email(){
  userid=$1
  awk "/^$userid / { print \$2; }"
}

现在使用它只是做:

$ cat /tmp/foo 
apple apple@gmail.com
mango 123@ymail.com
cat cat@hotmail.com
$ email apple < /tmp/foo 
apple@gmail.com

从那以后它很简单:

$ apple_mail=$(email apple < /tmp/foo )
$ echo $apple_mail 
apple@gmail.com