AWK找到两个模式并打印以执行命令

时间:2013-09-01 18:04:10

标签: linux sed awk

我有一个命令:./start.sh version

我有一个文件1.txt,其中指定了版本。

some_pattern=something
some_pattern=something
Fix_Version=install_v.1
some_pattern=something
some_pattern=something

有另一个文件install.sh执行命令,但我希望该文件捕获版本并执行命令。

somecommands
somecommands
(./start.sh version)
somecommands
somecommands

所以,结果应该是这样的:./start.sh install_v.1并执行它。从./start.sh中的install.sh1.txt中的./start.sh install_v.1搜索文件,查找版本并执行命令{{1}}。

1 个答案:

答案 0 :(得分:1)

使用此awk:

awk -F '[ =]+' 'FNR==NR && $1=="Fix_Version"{ver=$2;next} FNR!=NR{if ($1~/start\.sh/) $0 = $1 " " ver ")"; print $0}' a.txt install.sh
somecommands
somecommands
(./start.sh install_v.1)
somecommands
somecommands