Browse Source

shrc: Simplify datestr implementation

pull/1/head
10sr 10 years ago
parent
commit
83a754916e
1 changed files with 5 additions and 44 deletions
  1. +5
    -44
      shrc

+ 5
- 44
shrc View File

@@ -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"
}



Loading…
Cancel
Save