比较不同格式的日期并与另一个文件进行匹配

比较不同格式的日期并与另一个文件进行匹配

我有两个带有不同格式的日期戳的数据文件(作为文件内容中的文本)。我希望比较两个日期并根据 shell 脚本中的日期将变量从一个文件打印到另一个文件。我在 MATLAB 中有一个脚本,但我想在 shell 脚本中执行它。在一个文件中,日期格式为2017-01-01 12:00:00.在另一个文件中是20170101 1200.对于一个变量,我想将它与 in 中的日期进行比较,以及它是否与fromfile1 中作为列的打印变量匹配。file1file2

答案1

您可以通过参数替换在普通 bash 中执行此操作:

dateA='2017-01-01 12:00:00'
dateB='20170101 1200'

tmpA=${dateA//[-:]/}   # remove hyphens and colons
# next expansion excludes last 2 characters
[[ "${tmpA:0:-2}" == "$dateB" ]] && echo same || echo different
same

较旧的 bash 版本不支持负长度,但您可以使用${tmpA:0:${#tmpA}-2}

相关内容