我需要检索 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] 删除。
我来说两句