
スペルミスのある単語(「rools hatte」)をすべて印刷しようとしています。
しかし、エラーが返され続けます
sed: -e 式 #1、文字 17: `s' コマンドが終了していません
この Web サイトや他の場所で見つけたさまざまな方法を試しましたが、常にこのエラーが発生します。
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
。一重引用符を使用しているため、フレーズ全体が 1 つの文字列として扱われます。これを実行して結果を使用する場合は、バッククォートが必要です。
`seq $linecount`
または、$(...)
同じことを行う構文を使用する方が良いでしょう
for num in $(seq $linecount)
または、他のプログラムをまったく使用せずに実行することもできます。
num=1
while [ "$num" -le "$linecount" ]; do
...
((num=num+1))
done
N
ただし、ファイルの最初の行を印刷しようとしている場合は、次のようにするだけですhead
。
head -n "$linecount" misspelled