在终端中以文本形式显示日历事件


10

使用优胜美地,是否可以在命令行中显示日历中的事件?

我知道苹果为假期等提供的股票日历,/ usr / share / calendar /和命令“ calendar”以显示其中列出的事件。除了从我自己的日历中列出事件之外,是否可以执行相同的操作?

我发现个人日历存储在〜/ Library / Calendars中,但是我在该文件夹中找到的所有内容均不适用于'calendar'命令。有几个名称不明确的文件夹,类似于“ D4385-GS57-D352-GA248592.calendar”。有些文件夹包含很多* .ics文件,我认为这是日历事件。


calendar不适用于* .ics文件,man calendar有关支持的文件格式,请参阅。但是我很好奇是否还有其他方法可以以可读的形式列出您的日历内容。
nohillside

@patrix是的。当我发现有关此命令的内容时,我通读了手册页。我不太了解现代OS X中的日历工作原理,但是我认为* .ics文件是日历项。您提到的是我正在寻找的内容,还有一些其他方法可以以文本形式列出日历内容。
mindheavy 2014年

Answers:


8

这样的事情怎么样:

$ find ~/Library/Calendars -name "*.ics" |
      xargs grep -h -e "SUMMARY" -e "DTSTAMP" |
      sed -E 's/^[A-Z].*:(.*$)/\1/g' |
      sed -E 's/^([0-9]{4})([0-9]{2})([0-9]{2})T([0-9]{2})([0-9]{2})([0-9]{2}).*$/\1-\2-\3 \4:\5:\6/g'
Fists Birthday
2014-05-16 05:44:20
Secons Birthday
2014-07-26 09:58:49
Thirds Birthday
2014-05-16 05:44:20
...

此命令将输出所有日历(包括已订阅的日历)中的所有事件。


1
太好了,我现在正在研究sed初学者指南,以了解其工作原理。我希望学习足够的知识以按日期过滤事件。理想情况下,我希望能够传递一个显示当天(可能是五天)事件的命令。
mindheavy 2014年

如果出现错误:xargs:grep:参数列表过长使用:cd ~/Library/Calendars/; grep -r -h -e "SUMMARY" -e "DTSTAMP" . --include='*.ics'在sed之前的第一部分使用:
pegasuspect


8

我喜欢使用Homebrew来安装icalbuddy版本,该版本可以在OS X 10.11上正常运行

brew install ical-buddy 

1
现在可以在以下位置找到自制软件版本brew install ical-buddy。注意破折号。
理查德·克拉南东克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.