从一行命令中的字符串中获取任何第n个数字

时间:2018-01-11 18:56:26

标签: shell sed command-line grep command

我有一个字符串

indent code by 4 spaces and 6 letters and by 5 constants

我想分别提取每个号码。

1st number : 4
2nd number : 6

字符串可能会改变,所以我需要一个单行命令来完成它。

1 个答案:

答案 0 :(得分:0)

将所有数字读入数组:

readarray -t arr < \
    <(grep -Eo '[[:digit:]]+' \
      <<< 'indent code by 4 spaces and 6 letters and by 5 constants')

现在您可以使用索引访问所有匹配项:

$ echo "${arr[0]}, ${arr[1]}"
4, 6