我有一个命令:./start.sh版本
我有一个指定版本的文件 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
并执行它。从两个文件中读取,仅在 install.sh
中搜索 ./start.sh
,并在 1.txt
中查找版本并执行命令 ./start.sh install_v.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
关于linux - AWK 查找两个模式并打印以作为命令执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18561302/