我在文件中拥有用户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"
答案 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