#!/bin/bash declare -A circuits declare -A streams while read l; do id=$(echo $l|grep -Po '^\d+') circ=$(echo $l \ | grep -Po '[^ ]*$' \ | sed 's/,/ /g' \ | tr -d "\r") #echo $id ++ ${circ[@]} circuits[$id]=$circ done <<< $( { nc 127.0.0.1 9051 <<EOF authenticate "" getinfo circuit-status quit EOF } | grep -Po '^\d+ BUILT [^ ]*' ) while read l; do id=$(echo $l \ | grep -Po '^\d+ SUCCEEDED \d+' \ |grep -Po '\d+$') url=$(echo $l \ |grep -Po '[^ ]*$' \ |tr -d "\r") streams[$id]=$url done <<< $( { nc 127.0.0.1 9051 <<EOF authenticate "" getinfo stream-status quit EOF } | grep -Po '^\d+ SUCCEEDED \d+ [^ ]*' ) for key in "${!streams[@]}"; do echo "${streams[$key]} --> ${circuits[$key]}" done