bash grep结果到数组

时间:2011-11-20 23:47:07

标签: arrays bash grep

在bash中,我试图以数组的形式收集我的grep结果,每个单元格都保存着每一行。 我用这行下载网址

  

wget -O index -E $ CurrentURL

然后我想要点击'指数'将结果(其他网址)归结为每个单元格每行的数组, 什么应该是正确的语法?

  

阵列=(grep "some expression" index

...

2 个答案:

答案 0 :(得分:8)

 readarray GREPPED < <(grep "some expression" index)
 for item in "${GREPPED[@]}"
 do
     # echo
     echo "${item}"   
 done

哦,并将这些-v greps组合起来:

 egrep -v '\.(jpg|gif|xml|zip|asp|php|pdf|rar|cgi|html?)'

答案 1 :(得分:3)

在几个不好的选择中,最优雅的可能是使用临时文件。

wget $blah | grep 'whatever' > $TMPFILE
declare -a arr
declare -i i=0
while read; do
    arr[$i]="$REPLY"
    ((i = i + 1))
done < $TMPFILE

我没有时间解释原因,但不要直接进行阅读。

没有Unix shell是适合此任务的工具。 Perl,Groovy,Java,Python ......许多语言可以优雅地处理这个问题,但没有一个Unix shell。