From 83a754916e29ebe7b29ffc5ab510f0f3fe2698d9 Mon Sep 17 00:00:00 2001 From: 10sr <8slashes+git@gmail.com> Date: Fri, 12 Dec 2014 16:44:39 +0900 Subject: [PATCH] shrc: Simplify datestr implementation --- shrc | 49 +++++-------------------------------------------- 1 file changed, 5 insertions(+), 44 deletions(-) diff --git a/shrc b/shrc index 519b631..b0b27b9 100755 --- a/shrc +++ b/shrc @@ -568,50 +568,11 @@ datestr(){ return 1 fi - dfmt="" # actual format for date command - while test -n "$1" - do - fmt="$1" - shift - while test -n "$fmt" - do - case "$fmt" in - YYYY*|yyyy*) # year - dfmt="${dfmt}%Y" - fmt="`echo "$fmt" | cut -c 5-`" - ;; - YY*|yy*) # last two digits of year - dfmt="${dfmt}%y" - fmt="`echo "$fmt" | cut -c 3-`" - ;; - MM*) # month (01..12) - dfmt="${dfmt}%m" - fmt="`echo "$fmt" | cut -c 3-`" - ;; - DD*|dd*) # day of month (01..12) - dfmt="${dfmt}%d" - fmt="`echo "$fmt" | cut -c 3-`" - ;; - HH* | hh*) # hour (00..23) - dfmt="${dfmt}%H" - fmt="`echo "$fmt" | cut -c 3-`" - ;; - mm*) # minute (00..59) - dfmt="${dfmt}%M" - fmt="`echo "$fmt" | cut -c 3-`" - ;; - SS*|ss*) # second (00..60) - dfmt="${dfmt}%S" - fmt="`echo "$fmt" | cut -c 3-`" - ;; - *) - char=`echo "$fmt" | cut -c 1` - dfmt="${dfmt}${char}" - fmt="`echo "$fmt" | cut -c 2-`" - ;; - esac - done - done + # actual format for date command + dfmt="`echo "$1" | \ +sed -e 's/YYYY/%Y/g' -e 's/yyyy/%Y/g' -e 's/YY/%y/g' -e 's/yy/%y/g' |\ +sed -e 's/MM/%m/g' -e 's/DD/%d/g' -e 's/dd/%d/g' | \ +sed -e 's/HH/%H/g' -e 's/hh/%H/g' -e 's/mm/%M/g' -e 's/SS/%S/g' -e 's/ss/%S/g'`" date +"$dfmt" }