Я пытаюсь распечатать все слова с ошибками (что является "рулс" шляпа " ).
Но мне все время выдают ошибку
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
У вас неправильный тип кавычек около 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