gpt4 book ai didi

bash - 将 ICS 转换为表格 (awk)

转载 作者:行者123 更新时间:2023-11-29 09:19:59 24 4
gpt4 key购买 nike

我正在尝试解析 ics使用 awk 将文件存入表中。

我的 ics 文件看起来像这样(这里只发布一个事件):

BEGIN:VEVENT
DTSTART:20171004T173000Z
DTEND:20171004T183000Z
DTSTAMP:20180209T144026Z
UID:999999c@google.com
CREATED:20171004T171653Z
DESCRIPTION:
LAST-MODIFIED:20171004T173916Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:This text is the summary
TRANSP:OPAQUE
X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC
BEGIN:VALARM
ACTION:NONE
TRIGGER;VALUE=DATE-TIME:19760401T005545Z
X-WR-ALARMUID:282393849382
UID:883928394839283948392
ACKNOWLEDGED:20171004T173915Z
X-APPLE-DEFAULT-ALARM:TRUE
END:VALARM
END:VEVENT

我只对以 DTSTART 开头的行感兴趣, DTEND , CREATED , SUMMARY .

我想出了下面的代码

BEGIN{OFS="\t"}
$1=="DTSTART"{DTSTART=$2}
$1=="DTEND"{DTEND=$2}
$1=="CREATED"{CREATED=$2}
$1=="SUMMARY"{SUMMARY=$2}
{print DTSTART DTEND CREATED SUMMARY}

我正在执行

awk -F":" -f ics.awk file.ics

但是好像哪里出错了。另外,打印表格标题会很好。

最佳答案

只需将最后一行替换为

/^END:VEVENT/ {print DTSTART, DTEND, CREATED, SUMMARY}

第一个是

BEGIN{
OFS="\t"
print "DTSTART", "DTEND", "CREATED", "SUMMARY"
}

结果:

DTSTART DTEND   CREATED SUMMARY
20171004T173000Z 20171004T183000Z 20171004T171653Z This text is the summary

您正在为每一行执行“{print DTSTART DTEND CREATED SUMMARY}”。

关于bash - 将 ICS 转换为表格 (awk),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48709853/

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