Распечатать определенную строку файла

Распечатать определенную строку файла

Я пытаюсь распечатать все слова с ошибками (например, «rools hatte»).

Но мне постоянно выдают ошибку

sed: -e выражение #1, символ 17: незавершенная команда `s'

Я пробовал разные способы, которые нашел на этом сайте и в других местах, но все равно получаю эту ошибку.

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

решение1

У вас неправильный тип кавычек вокруг seq $linecount. У вас одинарные кавычки, из-за которых вся фраза рассматривается как одна строка. Если вы хотите выполнить ее и использовать результаты, вам нужны обратные кавычки:

`seq $linecount`

или, что еще лучше, используйте $(...)синтаксис, который делает то же самое

for num in $(seq $linecount)

или вы можете сделать это вообще без другой программы:

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

Если вы пытаетесь распечатать первые Nстроки файла, вам, вероятно, следует использовать просто head:

head -n "$linecount" misspelled

Связанный контент