done <$mip
ainda assume que $mip
é um nome de arquivo. Não é.
O que você quer é provavelmente algo como
printf '%s\n' "$mip" |
while IFS= read -r line; do
printf 'line %d\n' "$(( ++count ))"
done
A solução mais direta é
while IFS= read -r line; do
printf 'line %d\n' "$(( ++count ))"
done <filea.txt
ou até mesmo
cat -n filea.txt | sed 's/^ *\([0-9]*\).*$/line /'
Esse último comando usará cat
para enumerar as linhas no arquivo e sed
para excluir o conteúdo real do arquivo.
Ou com awk
, que é ainda mais simples:
awk '{ printf("line %d\n", NR) }' filea.txt
Ou, se você contar as linhas no arquivo primeiro:
count=$( sed -n '$=' filea.txt ) # or: count=$( wc -l <filea.txt )
printf 'line %d\n' {1..$count}