파일의 첫 번째 줄에 배열 요소가 있는지 확인하고 싶습니다.

파일의 첫 번째 줄에 배열 요소가 있는지 확인하고 싶습니다.
while read line ;
 do
 if grep -q "${MYARRAY[$i]}" <<< "$line";
 then
  echo its present
  else
  echo its not
 fi
 i+=1
  done < keyans.txt

여기에 keyans.txt모든 답변이 있습니다. 사용자 답변이 포함된 배열입니다. 배열의 첫 번째 요소 가 파일의 첫 번째 줄에 있는지, 두 번째 요소가 두 번째 줄에 있는지 등을 MYARRAY비교하고 싶습니다. keyans.txt존재하고, 그렇지 않으면 no로 표시됩니다.

답변1

이 경우 셀 필요가 거의 없습니다. 스왑 whilefor루프를 사용하면 다음을 수행할 수 있으며 필요에 따라 수정할 수 있습니다.

for el in "${MYARRAY[@]}"
do
  if IFS= read -r line < keyans.txt
  then
    case $line in
      *"$el"*) echo Present ;;
            *) echo Not present
    esac
  else
    break
  fi
done

관련 정보