如何从 minio (mc) ls 获取文件名

船文件夹

我需要检索 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 中只提取文件名?

维克多·斯特里比尤夫

您可以在sed命令后通过管道输入以下mc ls命令:

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

请参阅在线演示

详情

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章