Bash脚本-获取小于指定日期的值



你好,我有一个脚本的这一部分,我想只获得日期(第3列)比2002年10月30日(格式mm/dd/yyyy)老的行,但我无法正确获得数据。我尝试了不同的事情,比如将值存储在变量上并调用$或将其放入()或像字符串一样,但没有发生任何事情。列$3的数据类型为"date"

你能帮我吗?我应该如何过滤只有旧值比该日期?

#!/bin/bash
IFS=',' records=() sorted=()
{
IFS='' read -r header
while read -r -a values
do
[[ ${values[3]} < "10/30/2002" ]] || continue
case....

如果不能更改格式,如注释中所述,请转换为秒并在比较中使用(注意date命令的选项可以不同,这是针对macOS)

#! /bin/bash
to_s() {
local f='%m/%d/%Y %H:%M:%S'
echo "$(date -ujf "$f" "$1 00:00:00" +'%s')"
}
s=$(to_s '10/30/2002')
while read -r -a values
do
[[ $(to_s "${values[3]}") -lt $s ]] || continue
# ...

相关内容

  • 没有找到相关文章

最新更新