Solução :
Com awk
imprima apenas números de linha onde houver diferenças e colete todos eles em uma matriz bash
. Em vez de usar NR
no primeiro subcomando awk
, use NR
no último comando awk
:
line_numbers=($(\
paste \
<(awk -F, '{print $1}' file1) \
<(awk -F, '{print $1}' file2) \
| awk '{if ($1 != $2) print NR}' \
))
echo "Length: ${#line_numbers[*]}"
for index in ${!line_numbers[@]}; do
echo "line_numbers[$index] = ${line_numbers[index]}"
done
Exemplo :
> awk '{print NR": "$0}' file1
1: aab
2: b
3: bcbaa
4: ab
5: bb
6: ca
7: ba
8: abacb
9: bccaba
> awk '{print NR": "$0}' file2
1: aab
2: z
3: bcbaa
4: yyz
5: y
6: yx
7: ba
8: abacb
9: z
> bash main.bash
Length: 5
line_numbers[0] = 2
line_numbers[1] = 4
line_numbers[2] = 5
line_numbers[3] = 6
line_numbers[4] = 9