Eu tenho dois bash
arrays, digamos:
arr1=( 1 2 3 )
arr2=( 1 2 A )
e quero compará-los usando diff
. Como eu poderia passar as matrizes como se fossem o conteúdo de um arquivo?
Eu tentei algumas variações, mas todas falharam:
diff -y <$( echo ${arr1[@]} | tr ' ' '\n' ) <$( echo ${arr2[@]} | tr ' ' '\n' )
diff -y <${arr1[@]} <${arr2[@]}
diff -y $(<${arr2[@]}) $(<${arr1[@]})
diff -y <<<"$( echo ${arr1[@]} | tr ' ' '\n' )" \
<<<"$( echo ${arr2[@]} | tr ' ' '\n' )"
A saída desejada seria a esperada de diff -y
, que recebo se eu armazenar as matrizes nos arquivos a e b:
diff a b
1 1
2 2
3 | A
(menos espaços para legibilidade)
Eu gostaria de evitar a gravação de arquivos intermediários por motivos de velocidade, embora esteja ciente de tmpfs
pseudo arquivos como solução alternativa baseada em RAM.