【发布时间】:2012-06-12 08:15:28
【问题描述】:
我有一个名为 email.txt 的文件,如下所示:
Subject:My test
From:my email <myemail@gmail.com>
this is third test
我想通过使用 bash 脚本只取出这个文件中的电子邮件地址。所以我把这个脚本放在我的名为 myscript 的 bash 脚本中:
#!/bin/bash
file=$(myscript)
var1=$(awk 'NR==2' $file)
var2=$("$var1" | (grep -Eio '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b'))
echo $var2
但我无法运行此脚本。当我在 bash 中手动运行此命令时,我可以获得电子邮件地址:
echo $var1 | grep -Eio '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b'
我需要将电子邮件地址存储在一个变量中,以便我可以在其他功能中使用它。有人可以告诉我如何解决这个问题吗? 谢谢。
【问题讨论】:
-
您是否尝试过
echo $file以确保myscript确实返回了email.txt 中的内容? -
@flesk yup..我已经这样做了。$file 有我想要 grep 的确切行和内容,它可以毫无问题地回显
-
如果
From:行不在第 2 行:awk -F : '$1 == "From" {print $2; exit}' "$file"