Imprima determinada linha de arquivo

Imprima determinada linha de arquivo

Estou tentando imprimir todas as palavras com erros ortográficos (que é "rools hatte").

Mas continuo recebendo o erro

sed: -e expressão #1, caractere 17: comando `s' não terminado

Eu tentei diferentes maneiras que encontrei neste site e em outros lugares, mas sempre recebo esse erro de qualquer maneira.

linecount="$(wc -l < misspelled)"
echo -e "MISSPELLED: \t\t\t CORRECT:"
for NUM in 'seq $linecount'
do
    sed "${NUM}q;d" misspelled
done

Responder1

Você tem o tipo errado de aspas por aí seq $linecount. Você tem aspas simples, o que faz com que a frase inteira seja tratada como uma única string. Se você quiser executá-lo e usar os resultados desejados, coloque crases:

`seq $linecount`

ou, melhor agora, use a $(...)sintaxe que faz o mesmo

for num in $(seq $linecount)

ou você poderia fazer isso sem o outro programa:

num=1
while [ "$num" -le "$linecount" ]; do
    ...
    ((num=num+1))
done

Se você estiver tentando imprimir as primeiras Nlinhas do arquivo, provavelmente deverá usar apenas head:

head -n "$linecount" misspelled

informação relacionada