![打印出文件的某一行](https://linux22.com/image/95729/%E6%89%93%E5%8D%B0%E5%87%BA%E6%96%87%E4%BB%B6%E7%9A%84%E6%9F%90%E4%B8%80%E8%A1%8C.png)
我正在尝试打印出拼写错误的所有单词(即“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