Eu tenho um arquivo que tem 1500 linhas e quero alterar o número da linha 1449 Eu sei que posso usar o comando abaixo
sed -i '1449s/"'$' == $rdn{ strlen($rdn) - 1 })"/'$' == $rdn[ strlen($rdn) - 1 ])/' file_name
mas não está funcionando. eu quero substituir
'$' == $rdn{ strlen($rdn) - 1 })
para
'$' == $rdn[ strlen($rdn) - 1 ])
Alguém sabe como substituir isso especificando o número da linha no sed, por favor, oriente.
Seu problema não é o número da linha nem
sed
, é a citação: você não pode aninhar aspas duplas dentro de aspas simples, então'1449s/"'
tem aspas simples correspondentes, portanto, seu script começa com1449s/"$ ==
e assim por diante.Seu padrão provavelmente é único sem o
'$'
, então você pode trabalhar apenas com aspas simples:Ou você coloca a coisa toda entre aspas duplas, mas precisa escapar
$
do seu shell:Ou, finalmente, se a linha não contiver nenhum
{
ou}
exceto os a serem substituídos, você pode usar oy
comando:resultado