revisit command last - notes - a console notes manager using git DIR Log DIR Files DIR Refs DIR Tags DIR LICENSE --- DIR commit 71f0cbd9e967d15c0881e69447d0ceded20a0142 DIR parent a9b16c50298a1b736f8b17e440ef432c9099514e HTML Author: Solene Rapenne <solene@perso.pw> Date: Tue, 7 May 2019 12:32:50 +0200 revisit command last Diffstat: M notes | 41 ++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 15 deletions(-) --- DIR diff --git a/notes b/notes @@ -113,23 +113,34 @@ delete() { # display the list of edited files ordered by time last() { cd "$REPO" - git log --pretty="%cr" --name-only | \ - awk -v limit="$1" '{ - date=$0 ; - getline; getline; - file=$0 ; - seen[file]++; - if(seen[file]==1) { - if(limit != "") { - output++; - if(output <= limit) { - printf("%20s: %s\n", date, file) - } - } else { - printf("%20s: %s\n", date, file) + git log --name-only | \ + awk ' + /^commit / { + date="no" + next + } + + /^Date/ { + date=substr($0,index($0,$2)) + getline + for(s="x";s!="";) { + getline + s=$0 + } + next + } + + { + if(date!="no" && + substr($0,0,1)!=" " && + length($0)>1) + { + seen[$0]++ + if(seen[$0]==1) { + print date"\t"$0 } } - }' + }' | head -n $1 exit 0 }