在bash中,我试图以数组的形式收集我的grep结果,每个单元格都保存着每一行。 我用这行下载网址
wget -O index -E $ CurrentURL
然后我想要点击'指数'将结果(其他网址)归结为每个单元格每行的数组, 什么应该是正确的语法?
阵列=(
grep "some expression" index
)
...
答案 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。