シェルスクリプトで任意の行末に追記したい
シェルスクリプト初心者で勉強中です。よろしくお願いします。
下記のようなコンフィグファイルがあって、
valueA="aaaaaaa"
valueB="[@$]"
上記のvalueBの値の
"[@$]"
の後に
"[@$]" '/xxx/' '/xxx/' '/xxx/' ........
という様にスペースで区切りながら任意のディレクトリパスを追記していける
シェルスクリプトを作りたいと思っています。
include.lstというリストファイルの中に、/xxx/
の部分のリストを作り
それをwhile文で読込ませて実行しようとしましたが、
sedが思ったように動きませんでした。
include.lstの中身の例です。
/home/aaa/
/usr/bbb/
.
.
.
失敗例です。
<失敗例1>
while read line
do
sed -i -e "/valueB/s/$/ $line/g"
done < include.lst
==============================================
<失敗例2>
while read line
do
sed -i -e "|valueB|s|$| $line|g"
done < include.lst
==============================================
これが$line
のような変数でなければsed自体は成功します。
例)
sed -i -e "/valueB/s/$/ \'\/var\/\'/g"
また、
sed -i -e "s|xxx| $line|g"
の様に先に検索文字列を入れなければ、これも成功します。
この様な場合、どうしたらいいかご存知の方がいらっしゃいましたらご教示頂けないでしょうか。
別にwhile文やsedにこだわっているわけではありません。
よろしくお願いします。