我的日期格式为"星期四2016年9月22日3:50",我想将其转换为格式:" 2016-09-22"
我尝试了以下shell脚本,它适用于' date',但是为用户指定的字符串提供了错误:(我在Solaris平台上工作)。任何输入都会有所帮助。
输入:
#!/usr/bin/sh
mydate="Thu Sep 22 3:50 2016"
echo `date +"%Y-%m-%d"`
echo `$mydate +"%Y-%m-%d"`
输出
./testShell.sh
**2016-09-22**
./ testShell.sh [6]:Thu: not found **[No such file or directory]**
请指点什么?
答案 0 :(得分:2)
在Solaris 11下,GNU
目录下有许多/usr/gnu/bin
实用程序,因此您只需稍微修改脚本即可使用GNU变体的完整路径:
#!/bin/sh
mydate="Thu Sep 22 3:50 2016"
date +"%Y-%m-%d"
/usr/gnu/bin/date -d "$mydate" +"%Y-%m-%d"
或使用以g
为前缀的已存在的符号链接(对于GNU
):
gdate -d "$mydate" +"%Y-%m-%d"
或将PATH
设置为首先查看/usr/gnu/bin
并保持脚本不变。
PATH=/usr/gnu/bin:$PATH
答案 1 :(得分:0)
你可以尝试这样的事情;
#!/bin/bash
mydate="Thu Sep 22 3:50 2016"
date +"%Y-%m-%d"
date -d "$mydate" "+%Y-%m-%d"