date命令可以将另一个date命令给定的文件中的日期字符串作为参数吗?

安德烈·科斯塔什(Andrei Costache)

我正在阅读GNU Core Utils手册,并且正在尝试使用date命令。这是我在正文中找到的内容:

  1. date命令有一个-f datefile选项:

    • 用-d解析日期文件中的每一行,并显示结果日期和时间
    • 这意味着date正在查看datefile中的每一行,并将其视为日期字符串以用于显示该特定日期。
  2. 在第28章(日期输入格式)中指出:

date命令的输出并不总是可以接受为日期字符串,这不仅是因为语言问题,而且还因为时区项目(例如“ IST”)没有标准含义。当使用date生成打算稍后解析的日期字符串时,请指定一种日期格式,该日期格式与语言无关,并且不使用“ UTC”和“ Z”以外的时区项目。这里有一些方法可以做到这一点:

$ LC_ALL = C TZ = UTC0日期

2004年3月1日星期一1:0:21:42

  • 此声明(尤其是粗体部分)对我而言意味着我应该能够在日期文件中放入一个上述命令之类的日期命令,并且我在终端中发出的日期命令应该能够在日期文件中解析该日期命令,并且输出相应的日期。

由于某种原因,它对我不起作用。日期文件中的date命令出了点问题(引号错误,某些我不知道的特殊语法...),或者该-f datefile选项无法处理这种情况。

我总要问的是:

  • 可以给date -f命令提供一个文件,其中一行上的日期字符串是另一种date命令?例如,我可以在第一行中将字符串“ date”放入文件中吗(作为命令将返回系统时间),然后在date -f命令中提供该文件并获取当前系统时间(由日期生成)文件中的命令)?

非常感谢

安德烈

以撒

将由GNU日期正确解析的日期时间的正确格式为:

$ LC_ALL=C TZ=UTC0 date +"%Y-%m-%dT%H:%M:%S%z"
2016-09-28T04:08:55+0000

并且这也避免了空间,而空间可能产生其他问题。

如果您的文件每个日期包含一行,例如:

$ cat dates.txt
1992-03-28T14:26:01+0000
2004-02-29T21:02:02+0000
2005-02-28T21:02:03+0000
2015-07-02T11:52:04+0000
2016-03-31T01:36:05+0000

然后这将起作用:

$ TZ=America/Los_Angeles date -f infile
Sat Mar 28 06:26:01 PST 1992
Sun Feb 29 13:02:02 PST 2004
Mon Feb 28 13:02:03 PST 2005
Thu Jul  2 04:52:04 PDT 2015
Wed Mar 30 18:36:05 PDT 2016


如果要执行的操作是使用“日期命令”创建一个文件,如下所示:

$ cat dates.txt
date -d "1992-03-28T14:26:01+0000"
date -d "2004-02-29T21:02:02+0000"
LC_ALL=C TZ=UTC0 date -d "2005-02-28T21:02:03+0000" +"%Y-%m-%d"
TZ=America/Los_Angeles date -d "2005-02-28T21:02:03+0000"
date -d "2015-07-02T11:52:04+0000"
date -d "2016-03-31T01:36:05+0000"

然后,您需要使用shell执行每一行。
一种快速的解决方案是获取文件,然后执行所有命令。

$ . ./dates.txt
Sat Mar 28 14:26:01 GMT 1992
Sun Feb 29 21:02:02 GMT 2004
2005-02-28
Mon Feb 28 13:02:03 PST 2005
Thu Jul  2 11:52:04 GMT 2015
Thu Mar 31 01:36:05 GMT 2016

这回答了你的问题了吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将xargs参数作为字符串传递给带有'>'的另一个命令?

我可以将整个字符串作为一个命令行参数传递给C中的argv吗?

用另一个命令的返回值替换bash命令输出中的子字符串(例如,将时间戳转换为日期)

将sed字符串从一个文件替换到另一个文件时,“替换命令中的错误标志:'{”

将批处理命令行设置为另一个命令行中的字符串

如何使用汉字字符串作为bash中另一个命令的输入?

SwiftUI-如何将Date()作为字符串传递给另一个视图?

sed在macOS上搜索/替换:将参考传递回替换字符串中的另一个命令

我可以在另一个命令中运行一个命令吗?

如何将命令输出作为多个参数传递给另一个命令

如何将终端命令作为参数传递给另一个命令

以更智能的方式将命令中的字符串更改为另一个字符串

将命令的输出作为文件提供给另一个命令

Win10-如何通过管道将一个命令的输出作为另一个命令的参数来检查文件哈希?

Bash命令确定一组字符串中的哪个字符串是另一个字符串的前缀

使用一个命令的输出作为另一个命令的参数

在Swift中,您可以将一个字符串除以另一个字符串而不仅仅是一个字符吗?

当从另一个命令管道时,将原始模式空间限制为匹配的字符串

将一个文件中的所有字符串实例替换为另一个文件

Tensorflow 格式 tf.Variable 数组作为字符串作为另一个文件中的输入

sed命令将具有特殊字符的字符串替换为具有特殊字符的另一个字符串

将加密的字符串作为一个jsp参数从一个jsp传递给另一个

sed命令将一个文件中的字符串替换为另一文件的全部内容

给定一个任意字符串,我如何将命令打包为bash?

使用父函数的字符串输入作为另一个函数的参数

可以将另一个函数作为可选参数调用吗?

是否可以将包含字符串,变量和整数的多个打印命令包装到一个变量中,该变量以后可以写入文件中

Windows cmd将一个命令的输出作为参数传递给另一个

Unix命令列出包含字符串但* NOT *包含另一个字符串的文件