【问题标题】:How to get just filename from minio (mc) ls如何从 minio (mc) ls 获取文件名
【发布时间】:2021-05-14 09:48:31
【问题描述】:

我需要检索 bash 脚本的文件名。我以为mc ls 可以做 ls 可以做的所有事情,但我似乎弄错了。所以现在我正在努力处理regex

当我做mc ls minio/bucket1/ 时,我会得到:

[2021-05-14 11:15:18 CEST]     0B files1/
[2021-05-14 11:15:18 CEST]     0B files2/
[2021-05-14 11:15:19 CEST]     0B file1.ext
[2021-05-14 11:15:18 CEST]     0B file2.ext

如何只提取 bash 中的文件名?

【问题讨论】:

    标签: regex filenames ls minio


    【解决方案1】:

    您可以在mc ls 命令之后通过管道传递以下sed 命令:

    sed -n 's/^\[[^][]*][[:blank:]]*[^[:blank:]]*[[:blank:]]\(.*\.gpkg\)$/\1/p'
    

    请参阅online demo

    详情

    • -n - 禁止默认行输出
    • s - 替换命令
    • ^\[[^][]*][[:blank:]]*[^[:blank:]]*[[:blank:]]*\(.*\.gpkg\)$ - 匹配的正则表达式
      • ^ - 字符串开头
      • \[[^][]*] - [] 之间的子字符串,里面没有方括号
      • [[:blank:]]* - 零个或多个水平空格
      • [^[:blank:]]* - 零个或多个非水平空白字符
      • [[:blank:]]* - 零个或多个水平空格
      • \(.*\.gpkg\) - 第 1 组:任何文本,然后是 .gpkg
      • $ - 字符串结束
    • \1 - 将匹配替换为第 1 组值
    • p - 打印替换结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-18
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 2018-09-22
      • 1970-01-01
      • 2016-01-03
      相关资源
      最近更新 更多