您可以使用以下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