用bash变量替换文本文件行中的第5和第6个"单词"

bra*_*ein 0 bash awk text-processing sed

这个问题扩展了我的上一个问题(搜索特定的文本文件行,替换为某个字符).在@anubhava用户的帮助下,我能够搜索以dataspec开头的行,并从中进行转换

dataspecs v1 v2 v3 v4 v5 ! blah

dataspecs $new_val ! blah

不过,我现在需要能够保持变量v1 v2 v3(我不知道他们的实际值),并更换v4v5使用bash变量$new_v4$new_v5.所以我的新行现在看起来像这样:

dataspecs v1 v2 v3 new_v4 new_v5 ! blah

Ken*_*ent 5

awk -v n4="$new4" -v n5="$new5" '/^dataspecs/{$5=n4;$6=n5}7' file
Run Code Online (Sandbox Code Playgroud)