첫 번째/두 번째 파일 열 가져오기

첫 번째/두 번째 파일 열 가져오기

여기에는 두 개의 for 루프가 있습니다.

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

문자열을 비교하여 동일하면 두 번째 열을 echo $i[$2] 인쇄 하고 싶습니다. firstFile.txt이것이 가능합니까?

답변1

이는 다음을 통해 쉽게 수행할 수 있습니다 awk.

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

그러면 첫 번째 파일과 두 번째 열에서 일치하는 값이 인쇄됩니다.
또는 다음을 시도해 볼 수 있습니다.

#!/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

firstFile.txt의 첫 번째 열과 두 번째 열이 공백으로 구분되어 있고 secondFile.txt에 하나의 열이 있다고 가정합니다.

관련 정보