linux - 如何在shell脚本中更改日期格式

标签 linux shell

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/

相关文章:

linux - 使用bash将一个文件中的行内容复制到另一个文件中的特定字符位置

java - 如何在Windows上通过文件关联运行.sh并从Java获取返回值

bash - 如何列出在 Git 中更改了文件的所有文件夹名称?

bash - 找出 bash/dash/sh 在启动过程中读取的所有文件

java - 从 Java 更改参数调用 Bash 脚本

python - 如何检查脚本是从终端调用还是从另一个脚本调用

python - 如何在 Linux 中用 Python 捕获 gtk ApplicationWindow 的图像?

PHP - 发现 Debian 软件包是否存在

linux - 如何将 echo 语句和 arp 语句的输出放在一行中?

python - 在本地文件夹上运行 Docker 镜像