這個問題擴展了我最後一個問題(Search for specific line of text file, replace up to a certain character)。從用戶@anubhava的幫助,我能夠從用bash變量替換文本文件行中的第5和第6個「word」
dataspecs v1 v2 v3 v4 v5 ! blah
搜索開始dataspecs線,並將其轉換到
dataspecs $new_val ! blah
不過,我現在需要能夠保持變量v1
v2
v3
(我不知道它們的實際值),並用bash變量$new_v4
和$new_v5
替換v4
和v5
。所以我的新生產線將是這個樣子的:
dataspecs v1 v2 v3 new_v4 new_v5 ! blah
我想我要麼需要'sed'(1)告訴SED找到dataspecs'的'第一實例,在該行的一些分配給每個字的另一種選擇,並且在「words」6和7上做subs,或者(2)告訴sed查找'dataspecs'的第一個實例,以及空格和'!'之間的所有空白和子空間的第四個實例。 – brastein