在Solaris shell脚本上将日期字符串转换为数字将不提供此类文件或目录

时间:2016-09-23 06:49:56

标签: shell solaris

我的日期格式为"星期四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]**

请指点什么?

2 个答案:

答案 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"