特にsedの[address,address]commandといった構文で、addressにあたる部分をbashの変数から渡したいという事がある。
addressの次にcommandを書く。
addressは行番号で数値となる。
コマンドは英文字となる。
bashの変数名が英字で終わる場合は、コマンドとの区切りが不明となりエラーとなる。
目視でもわかりにくいので、コマンドの前にスペースを入れると良い。
$ addressa="2";addressb="3";echo -e "1\n2\n3" | sed -n "$addressa,$addressbp"
sed: 1: "2,": expected context address
$ addressa="2";addressb="3";echo -e "1\n2\n3" | sed -n "$addressa,$addressb p"
2
3
詳しくはO'Reilly Japan - sed & awkプログラミング 改訂版
5章 sedの基本コマンド P88ぐらい に書かれている。
0 件のコメント:
コメントを投稿