Anexa texto à primeira ocorrência de um padrão usando sed

2

Digamos que haja um arquivo de texto como abaixo:

Hello world
types=""
Mario
types="Game"

O que eu quero fazer é encontrar a primeira ocorrência de type="" e acrescentar com a palavra "programa". Eu preciso de saída como:

Hello world
types="program"
Mario
types="Game"

Eu preciso usar isso no shell script do Unix. O que eu tentei é:

sed -i '1,/types=""/s/types=""/types="program"/' filename

Como o comando parece, está inserindo apenas, não anexando. Eu tentei adicionar a\ , mas ainda não está funcionando.

    
por VRVigneshwara 09.06.2015 / 10:06

1 resposta

3

Sua substituição sed one-liner parece funcionar como você pretende:

$ cat t.txt
Hello world
types=""
Mario
types="Game"

$ sed '1,/types=""/s/types=""/types="program"/' t.txt

Hello world
types="program"
Mario
types="Game"

Pode valer a pena editar sua pergunta para mostrar o que você recebe quando você executa o comando sed (sem a opção -i para que os resultados sejam impressos no terminal).

BTW, seu intervalo de 1,/types=""/ é redundante. Você pode simplificá-lo como:

sed '/types=""/s/types=""/types="program"/' t.txt
    
por 09.06.2015 / 10:35