ファイルの特定の行を印刷します。

ファイルの特定の行を印刷します。

スペルが間違っているすべての単語(「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

おすすめ記事