Basta adicionar o número da linha antes: sed '<line number>s/<search pattern>/<replacement string>/
.
$ sed '1s/state0/XXXX/' file
id311 vmName1 XXXX
id312 vmName2 state0
id313 vmName3 state0
Como você deseja editar no lugar, diga:
sed -i.bak '1s/state0/XXXX/' file
Observe que eu uso .bak
após o sinalizador -i
. Isso executará a alteração no próprio file
, mas também criará um arquivo de backup file.bak
com o conteúdo atual de file
antes da alteração.
Para um número de linha variável, use a variável normalmente, bem como aspas duplas para que ela seja expandida:
sed -i.bak "${lineNumber}s/state0/XXXX/" file