gpt4 book ai didi

regex - 将匹配文件列出到数组中

转载 作者:行者123 更新时间:2023-12-02 08:12:33 26 4
gpt4 key购买 nike

我正在尝试制作一个列出文件可用版本的脚本,如下所示:

/home/test/file1.0
/home/test/file1.1
/home/test/file2.0
/home/test/file2.1
...
/home/test/file2.14

我需要的是一个包含所有值的数组: 1.0, 1.1, 2.0, 2.1, ..., 2.14。现在我想到了这一点:
VERSIONS=$(ls /home/test/file* | egrep '[0-9]+\.[0-9]+' | cut -c 16-);

哪个可以工作,但是结果是这样的字符串
1.0 1.1 2.0 2.1 ... 2.14

我需要一个数组。如何将结果作为值数组而不是单个字符串?

最佳答案

您需要使用一个数组。

#!/usr/bin/env bash

shopt -s extglob

versions=(/home/test/file*)

printf '%s\n' "${versions[@]##*+([[:alpha:]])}"
  • 需要extglob bash shell选项。

  • 保存以保存该输出。

    array=("${versions[@]##*+([[:alpha:]])}")

    您的版本可以通过以下方式完成
    versions=(/home/test/file*)

    mapfile -t array < <(printf '%s\n' "${versions[@]}" | egrep '[0-9]+\.[0-9]+' | cut -c 16-)

    现在, "${array[@]}"具有您感兴趣的值。

    关于regex - 将匹配文件列出到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61540582/

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