Como usar o sed para substituir uma variável de ambiente

3

Eu tenho as seguintes strings em um arquivo

$ENVVAR
someText ($ENVVAR)

Eu quero usar sed para que apenas a segunda ocorrência da variável seja substituída pelo valor da variável de ambiente

então

$ENVVAR
someText (value of env variable)
    
por user_mda 30.01.2017 / 22:25

1 resposta

2

Este é um caso para algumas citações extravagantes feias . Aspas simples param as expansões dos parâmetros do shell e aspas duplas para permiti-las.

Você pode pensar em aspas como comutadores on-off em uma expressão sed , fechando um tipo de cotação e abrindo outro assim: 'strong'"weak"'strong'

Usando $USER como exemplo:

$ cat file
$USER
some text ($USER)

$ sed 's/($USER)/('"$USER"')/' file
$USER
some text (zanna)
    
por Zanna 30.01.2017 / 22:35