次の行を含むファイルがあります。
戦争{ デフォルト名 = 'myapp' バージョン='1.0.2' }
次の変数もあります。
variable=b123
バージョン番号に$variable値を追加するようにファイルを編集したいので、結果は次のようになります。
戦争{ デフォルト名 = 'myapp' バージョン='1.0.2_b123' }
スクリプトでどのようにこれを達成できますかbash
?
答え1
簡単にできますかsed
?
$ var=_b123
$ sed -Ee "/version/s/'(.*)'/'\1$var'/" file
war {
baseName = 'myApp'
version = '1.0.2_b123'
}
(/version/
行に文字列が含まれていることを確認し、文字列がある場合は、一重引用符内の文字列をs
同じ文字列((...)
キャプチャ、\1
復元)と変数のテキストに置き換えます。ここには必要な内容がすべて含まれているため、引用符は問題になりません。中にあれば安全です。)
答え2
vimが好きなら、次のようにすることができます:
vim +/version +"norm 2f'i_b123" +x file
これでファイルが開き、次の3つのコマンドが実行されます。
「version」を含む最初の行に移動
通常モード入力、超入力、挿入
'
モード入力、挿入_b123
作成を終えて終了します。