打印出文件的某一行

打印出文件的某一行

我正在尝试打印出拼写错误的所有单词(即“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

相关内容