awk次のようなスクリプトでそれを行うことができます。
#!/bin/bash
awk '{printf "%s", $0}
!/\$\{myapp\.base\}\/bin/ {printf "%s", ",${myapp.base}/bin"}
{print ""}' input_file > output_file
入力:
checkedpaths=${myapp.base}/lib
checkedpaths=${myapp.base}/bin,someotherstuff
出力:
checkedpaths=${myapp.base}/lib,${myapp.base}/bin
checkedpaths=${myapp.base}/bin,someotherstuff
説明:
awk:awkコマンドを呼び出す
'...':一重引用符で囲まれたものはすべてawkによって実行されます
{printf "%s", $0}:各行について、そのまま印刷しますが、改行で終了しないでください
!/\$\{myapp\.base\}\/bin/ {printf ",${myapp.base}/bin"}:パターン${myapp.base}/binが現在の行のどこかで一致する場合は、印刷します,${myapp.base}/bin(最後のステップで行を改行で終了しなかったため、同じ行の最後に追加されます)。
{print ""}:パターンが一致したかどうかに関係なく、現在の行を改行文字で終了します。
input_file > output_file:input_file入力として使用します。出力をにリダイレクトしますoutput_file