Obtém a coluna do primeiro / segundo arquivo

1

Eu tenho dois loops por aqui

for i in $(cat "firstFile.txt")
do
    for j in $(cat "secondFile.txt")
    do
        if [ "$i" = "$j" ]; then
            echo $i[$2] # use first file second column
        fi
    done
done

e eu comparo strings e, se forem iguais, quero echo $i[$2] print firstFile.txt second column. É possível fazer isso?

    
por user3334375 23.04.2015 / 23:41

1 resposta

1

Isso pode ser feito facilmente com awk :

awk 'NR==FNR { a[$1] = $2; next; } { if ($1 in a) { print $1, a[$1]; } }' firstFile.txt secondFile.txt

isto imprimirá os valores correspondentes e a segunda coluna do primeiro arquivo.
Ou você pode tentar isso:

#!/bin/bash

while IFS=' ' read -r -a arr; do
    while read j; do
        if [ "${arr[0]}" = "$j" ]; then
            echo "${arr[0]} ${arr[1]}"
        fi
    done < secondFile.txt
done < firstFile.txt

, que assume a primeira e a segunda colunas no firstFile.txt, são separadas por espaço e o segundoFile.txt tem uma coluna.

    
por 23.04.2015 / 23:57

Tags