作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
shell脚本中有两种日期格式:
Format 1. 01-01-2014
Format 2. 2014-01-01
场景:
format 1为目录,format 2为文件名。
我正在尝试使用 shell 脚本解析格式 2 文件,但卡在了某一点。
我通过定义数组中的所有值来管理对具有格式 1 的目录的调用,现在对于每个数组值,我正在以格式 2 解析所需的文件。
现在管理格式 2 的数组。
问题可以解决,如果我可以像在 PHP 中那样进行日期转换。
$date='01-01-2014'
$filetosearch=date('Y-m-d',strtotime($date))
通过执行以上两个步骤,我可以从我在数组中定义的日期格式中获得两种不同的日期格式。所以这样的事情是否发生在 shell 中。
最佳答案
一个解决方案,使用 awk
:
date='31-01-2014'
filetosearch=$(echo "$date" | awk -F- '{print $3"-"$2"-"$1}')
并且,使用 sed
:
filetosearch=$(echo "$date" | sed 's/\(..\)-\(..\)-\(....\)/\3-\2-\1/')
上面假设 date
是欧洲(日-月-年)格式。如果您的日期是美国格式,则只需稍作更改:
date='01-31-2014'
filetosearch=$(echo "$date" | awk -F- '{print $3"-"$1"-"$2}')
和:
filetosearch=$(echo "$date" | sed 's/\(..\)-\(..\)-\(....\)/\3-\1-\2/')
关于linux - 如何在shell脚本中更改日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23557906/
我是一名优秀的程序员,十分优秀!