如何使用bash脚本正确解析以下类型输入的输出?

时间:2019-04-11 09:14:29

标签: linux bash command-line output

我正在尝试从文件中获取信息。

cat的结果为2行或更多行。

例如

cat $f | grep "pqr" | grep "abc"
    pqr: I(R) X(R) abc E v @ 23
    pqr: I(R) X(R) abc F v @ 24

我想把这2行放在一个数组中,所以我写了下面的代码。但这不起作用。

        arr1=`cat $f | grep "abc" | grep "xyz"`
        for ((i=0; i<${#arr1[@]}; ++i)) 
        do
            printf "%s  %s %s\n" "${arr1[i]}"
        done

我也尝试了以下操作,但没有用:

arr1=$(cat $f | grep "abc" | grep "xyz")

arr1=( $(cat $f | grep "abc" | grep "xyz") )

我希望结果像

echo ${arr1[1]}
pqr: I(R) X(R) abc F v @ 24

echo ${arr1[0]}
pqr: I(R) X(R) abc E v @ 23

但这没有发生。有人可以指出我在做什么错吗?

0 个答案:

没有答案