分配给bash登录的数组输出

时间:2015-08-11 08:41:32

标签: bash

我在bash环境中非常新,所以如果这个问题显而易见,我会提前道歉......

我有这个输出:

  log:
    -68 -73 -70 -72 -74 -74 -75 -73 -79      port1
    -68 -73 -70 -72 -74 -74 -75 -73 -79      port1
    -68 -73 -70 -72 -74 -74 -75 -73 -79      port1

我希望将这些测量值分配给数组:

mes_port1[1] = -68
mes_port1[2] = -73
mes_port1[3] = -70
.
.
.
mes_port1[7] = -73

你可以看到日志是多行,但只是为了从最后一行得到结果。 它也可以是一个数值,我可以用它们做一些计算吗?

感谢的

2 个答案:

答案 0 :(得分:0)

这将从日志的最后一行获取所有值到数组:

read -r -a mes_port1 < <(tail -n1 /your/file.log) 

然后您可以这样访问成员:

> echo ${mes_port1[0]}
-68
> echo ${mes_port1[2]}
-70
> echo ${mes_port1[8]}
-79

答案 1 :(得分:0)

正如你所说:a)只有最后一行sed:b)不要对数组使用“port1”(用declare -a array_name=($( command_for_output | tail -n 1 | sed 's/port1//' )) 删除)

array_name=($( command_for_output | tail -n 1 | sed 's/port1//' ))

或更简单:

echo ${array_name[0]}
-68

请注意,bash数组以索引0开头!所以你最终会得到:

//Declare with default value
private _possessions: Array<Thing> = new Array<Thing>();

等等。