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