ファイルの特定の行を印刷する

ファイルの特定の行を印刷する

スペルミスのある単語(「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

関連情報