文件中的日期差异(以天为单位)
Date differences in days from a file
我从一个文本文件中提取了 2 个日期列,我想创建一个新文件,其中每一行都有日期差异(天数)。使用 datediff
(来自 https://github.com/hroptatyr/dateutils)手动将日期输入命令行(例如 ddiff 2014-03-17 2013-09-19
returns -179
)。行数多,手动做不可行
通过管道传输文件内容 cat dates_file.txt | ddiff
并通过 xargs cat dates_file.txt | xargs | ddiff
得到我 ddiff: Error: reference DATE must be specified
。什么是好的方法?
dates_file.txt
2014-02-03 2013-11-29
2015-12-07 2015-05-13
2015-01-23 2014-07-31
2012-02-28 2012-01-17
2014-03-17 2013-09-19
...
预期输出
-66
-208
-176
-42
-179
...
要将 ddiff
与 xargs
一起使用:
xargs -n 2 ddiff < dates_file.txt
或者,使用 perl
和 Date::Calc
模块:
perl -MDate::Calc -ne '@a = /^(\d{4})-(\d\d)-(\d\d)\s+(\d{4})-(\d\d)-(\d\d)$/ or die; print Date::Calc::Delta_Days(@a), "\n"'
在命令后的参数中提供文件,或将数据提供给标准输入。
如果某些行没有预期的格式,这会使用 or die
进行错误检查。如果文件格式可能不同,请调整正则表达式或脚本...
我从一个文本文件中提取了 2 个日期列,我想创建一个新文件,其中每一行都有日期差异(天数)。使用 datediff
(来自 https://github.com/hroptatyr/dateutils)手动将日期输入命令行(例如 ddiff 2014-03-17 2013-09-19
returns -179
)。行数多,手动做不可行
通过管道传输文件内容 cat dates_file.txt | ddiff
并通过 xargs cat dates_file.txt | xargs | ddiff
得到我 ddiff: Error: reference DATE must be specified
。什么是好的方法?
dates_file.txt
2014-02-03 2013-11-29
2015-12-07 2015-05-13
2015-01-23 2014-07-31
2012-02-28 2012-01-17
2014-03-17 2013-09-19
...
预期输出
-66
-208
-176
-42
-179
...
要将 ddiff
与 xargs
一起使用:
xargs -n 2 ddiff < dates_file.txt
或者,使用 perl
和 Date::Calc
模块:
perl -MDate::Calc -ne '@a = /^(\d{4})-(\d\d)-(\d\d)\s+(\d{4})-(\d\d)-(\d\d)$/ or die; print Date::Calc::Delta_Days(@a), "\n"'
在命令后的参数中提供文件,或将数据提供给标准输入。
如果某些行没有预期的格式,这会使用 or die
进行错误检查。如果文件格式可能不同,请调整正则表达式或脚本...