0
我有一個包含一個文件:替換串的端上多行同值從陣列
asd x
sometihng else
asd x
sometihng else
asd x
和包含values=(3,4,5)
陣列。 現在我想用shell腳本中的第一個元素的值替換文件第一行的「x」。對於所有行/元素。讓我得到
asd 3
sometihng else
asd 4
sometihng else
asd 5
我應該怎麼做?
截至目前,我曾嘗試在循環中使用sed。事情是這樣的:
values=(3 4 5)
lines=3
for currentLine in $(seq $lines)
do
currentElement=$(expr "$currentLine"/"2")
sed "$currentLine s/\(asd\)\(.*\)/\1 ${values[$currentElement]}/"
done
但是,每運行循環我得到有趣行的所有原始文件編輯,像這樣:
asd 3
sometihng else
asd x
sometihng else
asd x
asd x
sometihng else
asd 4
sometihng else
asd x
asd x
sometihng else
asd x
sometihng else
asd 5
謝謝,亞歷克斯
謝謝!我會添加我嘗試過的所以你可以看到我在哪裏。 –
您需要使用'sed -i'(請參閱[portable use](https://stackoverflow.com/documentation/sed/3640/in-place-editing/12529/portable-use#t=201704200917386643334))各種版本),以便進行更改並將其寫回文件 – Sundeep
每節或第一節的第一行? –