find文件之后取值排序输出

内容目录

find /backup -type f -name "MPS.DB1C.20240425*"
得到
/backup/2024-04-30/123/MPS.DB1C.20240425081416
/backup/2024-04-30/123/MPS.DB1C.20240425001410
/backup/2024-05-01/123/MPS.DB1C.20240425041413
/backup/2024-04-27/123/MPS.DB1C.20240425201502
/backup/2024-04-27/123/MPS.DB1C.20240425161422
/backup/2024-04-27/123/MPS.DB1C.20240425235504
/backup/2024-04-27/123/MPS.DB1C.20240425121419
/backup/2024-05-02/123/MPS.DB1C.20240425200717
根据最后的时间数20240425081416进行排序

根据文件名中的时间戳对查找到的文件进行排序,可以使用 find 命令结合 sort 命令。这里时间戳是文件名的一部分,我们可以提取出时间戳并按其排序。

以下是具体的步骤:

  1. 使用 find 命令查找符合条件的文件。
  2. 使用 awk 命令提取文件名中的时间戳。
  3. 使用 sort 命令对时间戳排序。
  4. 输出排序后的文件列表。

以下是完整的命令:

find /data/ai_rvm/upload/mps-backup -type f -name "MPS.DB1C.20240425*" \
    | awk -F'/' '{print $0, substr($NF, 9)}' \
    | sort -k2 \
    | awk '{print $1}'

解释各个部分的功能:

  • find /data/ai_rvm/upload/mps-backup -type f -name "MPS.DB1C.20240425*":查找符合条件的文件。
  • awk -F'/' '{print $0, substr($NF, 9)}':使用斜杠 / 作为分隔符,提取文件名中的时间戳并保留完整路径。substr($NF, 9) 提取文件名中第 9 个字符开始的部分,即时间戳。
  • sort -k2:按提取出的时间戳进行排序。
  • awk '{print $1}':仅输出排序后的文件路径。

运行该命令后,将获得按时间戳排序的文件列表。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注