我有电子邮件进入处理系统,其中一些已开始使用无效的空白行拆分电子邮件标题,如下所示:
Date: Thu, 7 Mar 2013 22:24:44 +0000
Message-ID: <86A1035194F72547A2979A7767CD3BAF35485B8D@QTS-MB02.ecicloud.com>
References: <C0DA0966847B31409025BBD9A70187DA35399D17@QTS-MB02.ecicloud.com>
Accept-Language: en-US
Content-Language: en-US
中间的空行无效,导致下游程序出现问题。
我想提出一个简单的sed
脚本来修复任何特定于Accept-Language:.*
之后出现空白行的事件,以便删除空白行。
答案 0 :(得分:1)
使用sed
删除文件中所有行中的空白行:
sed -i '/^\s*$/d' file
从文件开头删除空白行,直到从Content-Language
开始的行:
sed -i '1,/^Content-Language/{/^\s*$/d}' file
答案 1 :(得分:1)
sed '/^[ \t]*$/ {N;/\nAccept-Language: en-US$/! P;D;}' FILE
答案 2 :(得分:0)
您应该真正查看用于处理电子邮件的formail和procmail命令。请参阅http://www.procmail.org/和http://linuxcommand.org/man_pages/formail1.html。