gpt4 book ai didi

string - 用于选择具有最新日期且不带子字符串的文件名的 Bash 脚本

转载 作者:行者123 更新时间:2023-12-04 18:54:51 25 4
gpt4 key购买 nike

如果一个目录/dat包含具有文件名的文件,例如

base-2020-01-01.dat
base-2020-01-01-incremental-2020-01-02.dat
base-2020-01-01-incremental-2020-01-03.dat
base-2020-01-03.dat
base-2020-01-03-incremental-2020-01-04.dat
base-2020-01-03-incremental-2020-01-05.dat
我们如何编写一个选择的 bash 脚本
  • base-*.dat不带 -incremental-* 的文件名子字符串,并且文件名中的日期是最近的日期。
  • 此文件名中的日期字符串

  • 在本例中,我们要选择 base-2020-01-03.dat2020-01-03 .
    如果不同的文件命名约定更容易解析,那就更好了!

    最佳答案

    与现代 GNU工具:使用 find , grep -Pbash (带错误处理)

    read file < <(
    find /data -maxdepth 1 -name 'base*.dat' ! -name '*incremental*' \
    -printf '%f\n' | sort -nr | head -n1
    )
    set -e
    echo "${file:?$(tput setaf 1)no match$(tput sgr0;exit 1)}"
    date=$(grep -oP "\d{4}-\d{2}-\d{2}" <<< "$file")
    echo "$date"
    输出
    base-2020-01-03.dat
    2020-01-03

    关于string - 用于选择具有最新日期且不带子字符串的文件名的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62685725/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com