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

Я пытаюсь распечатать все слова с ошибками (что является "рулс" шляпа " ).

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

sed: -e выражение # 1, char 17: unterminated `s 'command

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

linecount="$(wc -l < misspelled)"
echo -e "MISSPELLED: \t\t\t CORRECT:"
for NUM in 'seq $linecount'
do
    sed "${NUM}q;d" misspelled
done
0
04.10.2016, 03:07
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
1
28.01.2020, 02:47

Теги

Похожие вопросы