>>600
そういうコマンドもあった気がする。でもぱっと思い出せないから、awkと環境変数経由でよければ
STR="$str" awk 'NR==3{print ENVIRON["STR"]};1' file.txt
sedだけでやりたいなら
STR="$(echo -n "$str" | sed 's/$/\\n/g' | tr -d '\n')"
sed "3s/^/$STR/"
strに/が含まれるなら区切り文字を変えるかエスケープ。edでもできて、それが一番簡単だったかな…?