次のコマンドは、最初の3行を削除するために使用されます。
sed -i -e 1,3d t.txt
だから私は3を以下のスクリプトの変数に置き換えようとしました。
NrLines=$(wc -l t.txt)
sed -i -e 1,"$NrLines{d}" t.txt
次のエラーが発生しました。
sed: -e expression #1, char 13: unexpected `}'
私は何が間違っていましたか?
答え1
コマンドの置き換えと中括弧が誤って使用されているようです。
NrLines=$(wc -l < t.txt)
sed -i -e 1,"${NrLines}d" t.txt
答え2
これを行うには、別の方法を使用しますtail
(大容量ファイルには最適なオプションではありません)。
NrLines=3
<<< "$(< t.txt)" tail -n +$((NrLines+1)) > t.txt