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