从bash字符串中提取数字并将resut保存到数组中

时间:2017-05-12 08:40:38

标签: bash shell

抱歉,如果重复,但我找不到它。我有以下shell字符串

#!/bin/sh
word_1="/dev/sda5 233371648 242774015 9402368 4,5G 82 Linux swap / Solaris"

我需要从中提取所有整数并将其保存到数组中? 是否可以在整数相同的数组中使用4,5G。如果不是我只能提取整数数字。

2 个答案:

答案 0 :(得分:1)

但是如果你想整数但允许k,M,G等,那么试试:

unset a; let i=0; declare -a a ;  for b in $word_1 ; do [[ $b =~ ^-?[0-9,kMG]+$ ]] && a[i++]=$b ; done ; echo ${a[*]}

答案 1 :(得分:0)

这个适用于我:

-reloadItemsAtIndexPaths:

第一个echo命令写出一行中的所有数字,而第二个命令写出不同行上的每个数字。 请注意,某些版本的sed不支持换行符'\ n'。例如,在MacOS上,我必须使用gsed来获得相同的功能。