-1

コマンドがあります:./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.shininstall.shと inのみを検索し1.txt、バージョンを探して、コマンドを実行し./start.sh install_v.1ます。

4

1 に答える 1

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
于 2013-09-01T18:21:39.113 に答える