質問: ⓵ `sed -e '$row_number,$d' $job_name` 任意のファイル(`$job_name`)に対して、任意の行数(`$row_number`)から最終行を 削除したいと考えています。 変数として、下記を割り当てています。 `$row_number` `$job_name` ⓵の実行結果が望んだ様になりません。 調べた結果、どうも、`'$row_number,$d'`の部分に問題があるかと考えていますが、 正解がわかりません。※変数の指定方法に問題があるのではないかと考えています。 あるサイトでは、「'」は不要と書かれていました。しかし、実行結果は、指定行は削除されませんでした。 教示頂きたいです。宜しくお願い致します。
回答: `'` の位置を変えてみましょう。 ``` sed -e $row_number',$d' $job_name ``` `$row_number` は shell によって解釈されるようになりますし、 また、`$d` は `'` で囲まれているので shell によって解釈されません。 あと、上に挙げた方法だと、標準出力に結果が出力されます。もし `$job_name` に指定したファイルを書き換えたい、ということでしたら、`-i` を付けるとできます。 ``` sed -i -e $row_number',$d' $job_name ``` 書き換えちゃうと元には戻りませんので、慎重にどうぞ。