Para coisas como essa, você pode usar awk
:
$ awk '{print "LINE", NR, ": value", $0}' file
LINE 1 : value 40
LINE 2 : value 58
LINE 3 : value 76
awk
lê automaticamente uma linha no momento. NR
contém o número da linha e $0
do conteúdo completo da linha, portanto, basta imprimi-los.
Mas se você realmente quer o Bash, diga algo como:
line=1
while IFS= read -r value; do
echo "LINE $line : value $value"
(( line ++ ))
done < file
Isso percorre o conteúdo do arquivo file
usando um loop while
que é alimentado com < file
. A cada ciclo, o valor de uma linha é armazenado na variável $value
. Então, é uma questão de imprimir o resultado junto com o incremento da variável $line
para acompanhar o número da linha.
Veja mais informações em BashFAQ: Como posso ler um arquivo (fluxo de dados, variável) linha por linha (e / ou campo a campo)? .