我有一个ics文件,里面有很多事件。想通过添加一个位置来改进一下:标签的描述部分。关于如何做到这一点有什么想法吗?我需要做一个grep/sed/awk组合或写一个python脚本来编辑它吗?添加一个新的行与一个标记第一次或同时做一个移动模式?我需要拆分文件成几个部分或只是工作在一个部分?我想过每一个n行规则,但添加一个空行打破了这一规则。下面的坏例子:
BEGIN:VEVENT
DESCRIPTION:Student plan\n\n Date: 2023.03.10 friday\n\n Time from: 17:30\n\n Time to: 19:00\n\n Hours: 2h00m\n\n Subject: Maths \n\n Room: 124A \n\n Teacher: John Smith \n\n
DTEND:20230310T190000
DTSTAMP:20230227T140621Z
DTSTART:20230310T173000
SEQUENCE:0
SUMMARY:Math
UID:dcea6c77-3c51-4101-a62a-e4949e937fa9
END:VEVENT
如您所见,有一个房间:XXX \n\n模式。它可以被移动或复制-无所谓。
Exepted:
BEGIN:VEVENT
DESCRIPTION:Student plan\n\n Date: 2023.03.10 friday\n\n Time from: 17:30\n\n Time to: 19:00\n\n Hours: 2h00m\n\n Subject: Maths \n\n Room: 124A \n\n Teacher: John Smith \n\n
LOCATION:Room: 124A
DTEND:20230310T190000
DTSTAMP:20230227T140621Z
DTSTART:20230310T173000
SEQUENCE:0
SUMMARY:Math
UID:dcea6c77-3c51-4101-a62a-e4949e937fa9
END:VEVENT
2条答案
按热度按时间jv2fixgn1#
她你去:
bmvo0sr52#
使用
awk
的替代解决方案:如果行以'DES'开头,则使用awk
match
函数捕获与Room:
匹配的文本和至少一个字母数字字符[[:alnum:]]+
。现在使用该捕获组重新定义当前行,以包括换行符和目标文本。现在使用awk
简写表示默认无条件{print}
,即'1'。1是条件,其计算结果始终为true。该操作被省略,因此执行默认的{print}。输出:
src.ics内容: