Ive seen many variations, very confused on how to solve these 3 problems.
you can just use bash if your system has it. The basic idea behind is to set a count and incrementing this count while iterating the file.
1) deleting all rows except the first from a file
read -r line < file; echo "$line" > temp && mv temp file
2) deleting a row from file with a line number
declare -i count=0
while read -r line
do
((count++))
case "$count" in
10) continue;;
* ) echo "$line";;
esac
done < file > temp && mv temp file
3) deleting rows from a file with a range of line numbers eg from 10 to 20
declare -i count=0
while read -r line
do
((count++))
if (( $c < 10 && $c > 20 ));then
echo "$line";;
fi
done < file > temp && mv temp file