使用此shell脚本作为源来提取邮件ID字段。需要单独提取邮件ID。例如需要采取 anupam.panda@btx.com ajay.k.singh@btx.com 请指教。
#!/bin/ksh
#exit 0
export nodename=`uname -n`
export SENDER_ID=BTFON.$nodename@btx.com
mailx -s "ERROR: OWB loading for ${FILE_NAME} has failed " anupam.panda@btx.com,ajay.k.singh@btx.com <<EOF
答案 0 :(得分:1)
如果要扫描的目录(递归)是MYDIR,那么:
grep -hrioI '[a-z0-9_\.]\+@[a-z0-9]\+\.[a-z0-9\.]\{2,\}' MYDIR 2>/dev/null | sort -u
如果您只想扫描shell脚本,请添加--include = * .sh option:
grep -hrioI --include=*.sh '[a-z0-9_\.]\+@[a-z0-9]\+\.[a-z0-9\.]\{2,\}' MYDIR 2>/dev/null | sort -u
编辑我已将TLD的模式更改为至少2个符号({2,}而不是+)。
答案 1 :(得分:0)
awk -v FS="[\",<]" '/mailx/{for(i=3;i<NF;i++) print $i}' file
如果您的文件具有相似的格式,并且您希望提取所有跟随主题行的电子邮件,直到&lt;
要捕获sender_id,请执行以下操作 -
awk -v FS="[\",<$]" '
/mailx/{print "RECEPIENTS: ";for(i=4;i<NF;i++) print $i;next}
/SENDER_ID/{print "SENDER INFO: \n"$NF}' file
<强>测试强>
[jaypal:~/Temp] awk -v FS="[\",<$]" '
/mailx/{print "RECEPIENTS: ";for(i=4;i<NF;i++) print $i;next}
/SENDER_ID/{print "SENDER INFO: \n"$NF}' file
SENDER INFO:
nodename@btx.com
RECEPIENTS:
anupam.panda@btx.com
ajay.k.singh@btx.com
答案 2 :(得分:0)
尝试:
代码:
awk -F\" '
/^mailx/{
n=split(substr($3,2,length($3)-6),emails,/,/)
for (i=1;i<=n;i++)print emails[i]}
' f3
输出:
anupam.panda@btx.com
ajay.k.singh@btx.com
答案 3 :(得分:0)
这可能对您有用:
sed '/^mailx/!d;s/.*"\s*\|\s*\S*$//g;y/,/\n/' file1 file2 file3 ...
anupam.panda@btx.com
ajay.k.singh@btx.com