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