2016-06-22 2 views
2

oh-my-zsh 기록 출력을 포맷하려고합니다. fc 갈 방법이처럼 historyHISTFILE, HISTSIZE 또는 HISTTIMEFORMAToh-my-zsh 기록 날짜 형식화

의 모든 설정을 무시하기 때문에 그것은 내가 어떤 적절한 문서를 찾을 수 없습니다 date

으로처럼 포맷 할 수있는 방법이 있나요 보인다 온라인으로 fc 명령에 대해 알아보십시오. fc에 대한 매뉴얼 페이지도 없습니다.

일하는 것은 fc -flE 일종의 유럽 형식으로 기록을 출력합니다.

결국 내가하고 싶은 일은 내가 얼마나 많은 명령을 입력했는지 알아 보는 것입니다.

거기에 약간의 문제가 있습니다.

(I 6 대신 06의 원하는)하지만보다 여기에 더 형식 옵션이

alias today='date +"%d.%m.%Y"' 나를 앞에 0을 제거 할 수없는 형식의 토큰이 없습니다 :

현재 나는이 설정을 가지고 이상한 zsh 히스토리 명령 fc. 역사는 2016년 6월 22일으로 날짜를 출력하고,이 today 따라서 2016년 6월 22일 이고, I는 이러지 수 fc -flE | grep $(today) | wc -l

어떤 피드백이 매우 을 이해된다!

답변

4

짧은 답변 :

fc -li | grep $(date -I) 

옵션 -i은 ISO 8601 yyyy-mm-dd HH:MM 형식을 타임 스탬프를 인쇄 할 fc 지시합니다. -I 옵션은 날짜에 ISO 8601 형식으로 시간을 표시하지 않고 출력하도록 지시합니다.


이 문제에 관해서는 발생 : fc으로

  1. 당신이 zshbuiltin manpage에서의 설명서를 찾을 수 있습니다 zsh의 내장이다. 및 -E (유럽 dd.mm.yyyy hh:mm 형식으로 인쇄 타임 스탬프)

  2. 옵션 -f (US MM/DD/YY hh:mm 형식으로 인쇄 타임 스탬프) -E이 (오류 메시지없이 자동으로) 우선 순위를 복용, 상호 배타적입니다. 유럽 ​​형식을 원하지 않으면 -E 옵션을 놓으십시오.

  3. -t fmt 옵션을 사용하여 fc의 시간 소인 형식을 명시 적으로 지정할 수 있습니다.다음은 (제로 패딩주의) 06/22/2016 - 23:07:09 같은 타임 스탬프를 인쇄합니다 :

    fc -lt '%m/%d/%Y - %H:%M:%S' 
    

    이 타임 스탬프를 포맷 strftime 기능 (man 3 strftime에 대한 추가 정보를 원하시면)를 사용합니다. 따라서 형식 옵션은 date과 사용할 수있는 형식 옵션과 거의 동일합니다.

  4. - 플래그를 사용하여 date에 필드를 채우지 않을 것이라고 알릴 수 있습니다. 예를 6/22/16를 들어 :

    date +%-m/%-d/%y 
    

    이 플래그는 fc 작동합니다.


약간 더 이상 답 :

는 ISO 8601 이외에 다른 타임 스탬프 형식을 선호하는 경우, 당신은 단지 datefc 모두 One을 사용하여 지정할 수 있습니다. 예 : 비 - 패딩 미국 날짜 형식 및 0- 패딩 시계 시간 (초) :

TS_DATE="%-m/%-d/%y" 
TS_TIME="%H:%M:%S" 
fc -lt "$TS_DATE $TS_TIME" | grep $(date +$TS_DATE) 
+0

감사합니다. 이 명령에 대한 정보를 찾는 것은 정말로 어려웠습니다. 시간과 노력에 감사드립니다. 정말 고맙습니다. :) –

+0

몇 년 동안 oh-my-zsh를 사용 해왔고 최신 [.zshrc 템플릿] (https://raw.githubusercontent.com/robbyrussell/oh-my)이 필요했습니다. -zsh/master/templates/zshrc.zsh-template)'HIST_STAMPS' 옵션을 얻습니다. 어쩌면 다른 사람들도 똑같은 문제를 겪을 것입니다. – the0ther