Asi*_*ati 5 bash shell solaris
我有时间像2013-04-29 08:17:58.我需要将其转换为自纪元时间以来的秒数.请不要perl和我的操作系统是solaris.+%s不起作用.nawk'BEGIN {print srand()}'将当前时间转换为秒,但不会将给定时间转换为秒.
谢谢
这是一个不需要perl的shell函数:
function d2ts
{
typeset d=$(echo "$@" | tr -d ':- ' | sed 's/..$/.&/')
typeset t=$(mktemp) || return -1
typeset s=$(touch -t $d $t 2>&1) || { rm $t ; return -1 ; }
[ -n "$s" ] && { rm $t ; return -1 ; }
truss -f -v 'lstat,lstat64' ls -d $t 2>&1 | nawk '/mt =/ {printf "%d\n",$10}'
rm $t
}
Run Code Online (Sandbox Code Playgroud)
$ d2ts 2013-04-29 08:17:58
1367216278
Run Code Online (Sandbox Code Playgroud)
请注意,返回的值取决于您的时区.
$ TZ=GMT d2ts 2013-04-29 08:17:58
1367223478
Run Code Online (Sandbox Code Playgroud)
这个怎么运作:
touch(此处为"2013-04-29 ls命令以获取文件修改时间并将其打印为整数| 归档时间: |
|
| 查看次数: |
2950 次 |
| 最近记录: |