터미널에서 캘린더 일정을 텍스트로 표시


10

Yosemite를 사용하면 명령 줄에 내 캘린더의 이벤트를 표시하는 방법이 있습니까?

휴일과 같은 것들 / usr / share / calendar / 및 'calendar'명령에 표시된 이벤트를 표시하기 위해 Apple이 제공하는 재고 일정을 알고 있습니다. 동일한 작업을 수행하지만 내 캘린더의 이벤트를 나열하는 방법이 있습니까?

개인 캘린더가 ~ / Library / Calendars에 저장되어 있지만 해당 폴더에서 찾은 모든 것이 'calendar'명령과 작동하지 않습니다. "D4385-GS57-D352-GA248592.calendar"와 유사한 이름을 가진 여러 폴더가 있습니다. 그리고 일부 폴더에는 캘린더 이벤트라고 생각되는 많은 * .ics 파일이 포함되어 있습니다.


calendar* .ics 파일에서 작동하지 않습니다 man calendar. 지원되는 파일 형식을 참조하십시오 . 그러나 캘린더의 내용을 읽을 수있는 형식으로 나열하는 다른 방법이 있는지 궁금합니다.
nohillside

@patrix 맞습니다. 이 명령에 대해 알았을 때 매뉴얼 페이지를 읽었습니다. 현대 OS X에서 캘린더가 작동하는 방식에 대해 너무 많이 알지 못하지만 * .ics 파일은 캘린더 항목이라고 생각합니다. 내가 언급 한 것은 캘린더 내용을 텍스트 형식으로 나열하는 다른 수단입니다.
mindheavy

답변:


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 초보자 가이드를 통해이 방법을 배우고 있습니다. 날짜별로 이벤트를 필터링 할 수있는 방법을 배우고 싶습니다. 이상적으로는 현재 날짜 및 5 일 동안의 이벤트를 표시하는 명령을 전달할 수 있기를 원합니다.
mindheavy

오류가 발생하는 경우 : xargs : grep : 인수 목록이 너무 깁니다cd ~/Library/Calendars/; grep -r -h -e "SUMMARY" -e "DTSTAMP" . --include='*.ics' . sed가 끝날 때까지 첫 번째 부분에 사용하십시오 .
pegasuspect

9

icalbuddy http://hasseg.org/icalBuddy/를 살펴 봐야 합니다. 이를 통해 날짜 / 달력 및 모든 필드별로 출력하려는 ​​요일을 구성 할 수 있습니다. 실제로 모든 종류의 캘린더와 동기화되고 동기화되지 않으며 터미널, geektool 등에서 사용할 수 있습니다.


참고-iCalBuddy는 훌륭하지만 여기에보고 된 OS X 10.11의 버그가 있습니다 : github.com/ali-rantakari/icalBuddy/issues/14
Matt

그때부터 수정 된 것 같습니다.
Martin Delille

8

Homebrew 를 사용 하여 OS X 10.11에서 잘 작동하는 icalbuddy 버전을 설치하고 싶습니다.

brew install ical-buddy 

1
Homebrew 버전은 다음에서 찾을 수 있습니다 brew install ical-buddy. 대시를 참고하십시오.
Richard Kranendonk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.