ksh:awkコマンドの出力を配列に保存します。

ksh:awkコマンドの出力を配列に保存します。

次のコマンドがありますawk

awk -F ' ' '{ print $NF }' log filename

それが提供する出力は次のとおりです。

06:00:00
parameters:
SDS
(2)
no
no
no
no

doc=4000000000).


information:
0
5898
5898
06:06:25

問題は、配列に保存する必要があることです。たとえば、印刷またはエコーするとき$array[0]

私はその資格があります06:00:00

そして同様に

$array[1] = parameters:
.
.
.
$array[n] = 06:06:25

私の究極の目標は、printステートメントを使用して印刷することです。

printf("start time: %d  and end time: %d", array[0], array[n]")

出力

start time:06:00:00 and end time:06:06:25

ベストアンサー1

これにより、トリックを実行できます。

array=( $(awk -F ' ' '{ print $NF }' log filename) )

@Stephaneのコメントを考えると、別のアプローチは次のとおりです。

array=()
awk -F ' ' '{ print $NF }' log filename | while IFS= read -r line; do
    array+=( "$line" )
done
echo ${#array[@]}
echo ${array[1]}
echo ${array[17]}
17
06:00:00
06:06:25

私のksh "93u +"で動作します。

おすすめ記事