• ベストアンサー

ファイル中の数行を抜き出す処理について(シェル)

ファイルaaa.txtの2行目から4行目を抜き出し、 ファイルbbb.txtに格納する方法として、 sed -n '2,4p' aaa.txt > bbb.txt がありますが、 変数を使用し、 start=2 end=4 sed -n '${start},${end}p' aaa.txt > bbb.txt とすると、エラーが発生します。 どうすればよろしいのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • x415f484f
  • ベストアンサー率71% (57/80)
回答No.2

> sed -n '${start},${end}p' aaa.txt > bbb.txt シングルクォートで囲った変数は値に展開されません。 sed -n ${start},${end}p aaa.txt >bbb.txt と、なっていることが原因だと思われます。 シェルスクリプトの中で ${start},${end}p はひとつの引数として 扱われると思われ次のようになると思われます。 arg1 は ${start},${end}p arg2 は aaa.txt sed -n arg1 arg2 >bbb.txt シングルクォートで囲まず start=2 end=4 sed -n ${start},${end}p aaa.txt > bbb.txt と、すれば動きませんか?

その他の回答 (1)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

シングルクォートじゃなくダブルクォートでくくる。

関連するQ&A