shell实例浅谈之八日期串中month设为特殊格式
来源:互联网 发布:服务器怎么安装软件 编辑:程序博客网 时间:2024/05/22 06:27
一、问题
输入日期格式字符串“month-day-year”,仅将month设置成三个字母显示,第一个字母大写第二到三个字母小写(判断day和year基本相似,此处暂不处理)。
先判断month是数字还是单词,若是单词取前三个字母并格式化,若为数字则直接对应成字母。
二、详解
- #处理month为字母,第一个字母大写,其余小写
- #!/bin/bash
- MonthNumToName()
- {
- case $1 in
- 1) month="Jan" ;; 2) month="Feb" ;;
- 3) month="Mar" ;; 4) month="Apr" ;;
- 5) month="May" ;; 6) month="Jun" ;;
- 7) month="Jul" ;; 8) month="Aug" ;;
- 9) month="Sep" ;; 10) month="Oct" ;;
- 11) month="Nov" ;; 12) month="Dec" ;;
- *) echo "$0:unknown value $1" >&2 ; exit 1 ;;
- esac
- return 0
- }
- ###main入口,传递三个参数month day year###
- if [ $# -ne 1 ]
- then
- echo "Usage:$0 month-day-year or month/day/year"
- exit 1
- fi
- set -- $(echo $1 | sed 's/[\/\-]/ /g') #处理MM/DD/YYYY or MM-DD-YYYY 的形式,set 的--命令可以将其后的参数赋予位置参数$1、$2和$3
- #判断month是否为数字,替换串中所有数字为空则为数字
- if [ -z $(echo $1 | sed 's/[[:digit:]]//g') ]
- then
- MonthNumToName $1
- else
- #取第一个字母变大写,取2-3字母变小写
- month="$(echo $1 | cut -c1 | tr '[:lower:]' '[:upper:]')" #等价tr "[a-z]" "[A-Z]"小写字母转大写
- month="$month$(echo $1 | cut -c2-3 | tr '[:upper:]' '[:lower:]')" #字符串合并
- fi
- echo $month $2 $3 #输出结果
- exit 0
0 0
- shell实例浅谈之八日期串中month设为特殊格式
- shell实例浅谈之八日期串中month设为特殊格式
- shell之特殊字符
- shell实例浅谈之三产生随机数七种方法
- shell实例浅谈之九格式化输出大数字
- shell实例浅谈之十二批量解压zip文件
- shell实例浅谈之十二批量解压zip文件
- shell实例浅谈之九格式化输出大数字
- shell实例浅谈之检测用户输入串的合法性
- shell实例浅谈之产生随机数七种方法
- shell实例浅谈之十四利用crontab自动清除日志
- NPOI 单元格 格式设为文本 HSSFDataFormat
- NPOI 单元格 格式设为文本 HSSFDataFormat
- hadoop 输出结果设为压缩格式
- shell实例浅谈之十一单实例运行(shell运行一次)
- shell实例浅谈之单实例运行(shell运行一次)
- shell学习之-特殊字符
- shell学习之-特殊字符
- shell实例浅谈之检测整数、浮点数和日期数的合法性
- Spring的AOP注解编程
- 水仙花算法
- shell实例浅谈之九格式化输出大数字
- Cocos2d-x 3.2 大富翁游戏项目开发-第十五部分 升级地块
- shell实例浅谈之八日期串中month设为特殊格式
- OpenGL ES 2.0 Shader
- java 动态代理和静态代理
- Android中JNI创建实例
- 机器学习入门资源不完全汇总
- shell实例浅谈之检测用户输入串的合法性
- 第三章 栈和队列
- hdu3336----Count the string
- [C++]LeetCode: 67 Single Number II