我正在尝试在 Linux 上使用 sed 从电子邮件文件中提取 To 标头。
问题是 To 标头可能位于多行上。
e.g:
To: [email protected] /cdn-cgi/l/email-protection, [email protected] /cdn-cgi/l/email-protection,
[email protected] /cdn-cgi/l/email-protection, [email protected] /cdn-cgi/l/email-protection,
[email protected] /cdn-cgi/l/email-protection
Message-ID: <[email protected] /cdn-cgi/l/email-protection>
我尝试了以下方法:
sed -n -e '/^[Tt]o: / { N; p; }' _message_file_ |
awk '{$1=$1;printf("%s ",$0)};NR%2==0{print ""}'
sed 命令提取以 To 开头的行和下一行。
我将输出通过管道传输到 awk,将所有内容放在一行上。
完整的命令输出为一行:
To: [email protected] /cdn-cgi/l/email-protection, [email protected] /cdn-cgi/l/email-protection, [email protected] /cdn-cgi/l/email-protection, [email protected] /cdn-cgi/l/email-protection
我不知道如何继续测试下一行是否以空格开头并将其添加到结果中。
我想要的是所有的地址
To: [email protected] /cdn-cgi/l/email-protection, [email protected] /cdn-cgi/l/email-protection, [email protected] /cdn-cgi/l/email-protection, [email protected] /cdn-cgi/l/email-protection, [email protected] /cdn-cgi/l/email-protection
任何帮助将不胜感激。