gpt4 book ai didi

sed - 如何将sed脚本仅应用于电子邮件标题?

转载 作者:行者123 更新时间:2023-12-04 21:34:47 25 4
gpt4 key购买 nike

此脚本从电子邮件的“日期”字段中删除时区:

#!/bin/sed -rf
s/(^Date: (Sun|Mon|Tue|Wed|Thu|Fri|Sat),.*[0-9][0-9]:[0-9][0-9]:[0-9][0-9]) \+0900$/\1/i


但是,如果邮件正文中出现日期,我不希望删除时区。遇到双换行符后,如何让s退出(向电子邮件标题字段的末尾发送信号)?如何仅将替换应用于电子邮件标题? sed中可能吗? awk解决方案也是可以接受的。

更新:

我想出了如何通过匹配空行来退出sed的方法:

/^$/q


但是,我真的不想退出,因为那封电子邮件的正文没有打印出来。

最佳答案

您可能可以使用分支功能执行此操作,并让分支执行常规打印。 /^$/b x

#!/bin/sed -rf
x
/^MAGICTOKEN$/b body
x
s/(^Foo: bar).*/\1/i
p
s/^$/MAGICTOKEN/
/^MAGICTOKEN$/x
d

: body
x
p
d


当然,如果我真的这样做,我会使用perl。

关于sed - 如何将sed脚本仅应用于电子邮件标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6271782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com