여기에는 두 개의 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에 하나의 열이 있다고 가정합니다.