从字符串中打印日期作为bash中的日期

时间:2016-10-26 12:32:33

标签: bash

转换以下文字的bashonic方式是什么:

Specifications of bla/bla.txt created at 181438 on the 20160720

成:

Specifications of bla/bla.txt created at 18:14:38 on the 20th July 2016

我目前用以下信息生成我的消息:

printf "Specifications of %s created at %d on %d\n" "$1" "$thehour" "$thedate"

$thehour$thedate是从bla.txt中提取的。它们与任何文件标签或文件的实际创建日期无关。

我基本上都在询问BASH是否已经提供了这样的功能,如果没有,那么如何才能轻松实现这一功能。

1 个答案:

答案 0 :(得分:2)

使用GNU date

$ thehour=181438
$ thedate=20160720
$ printf 'Specifications of bla/bla.txt created at %s on %s\n' "$(sed \
   's/../&:/g' <<<"$thehour"|sed 's/.$//')" "$(date -d "$thedate" '+%dth %B %Y')"

<强>输出:

Specifications of bla/bla.txt created at 18:14:38 on 20th July 2016
  • sed 's/../&:/g' <<<"$thehour"|sed 's/.$//'以所需格式获取thehour变量扩展

  • date -d "$thedate" '+%dth %B %Y'获取thedate变量展开,即使用date所需的日期格式