substituir texto por sed no linux

0

Eu tenho o texto abaixo em um arquivo

path_tryuio=$path_opt/GMT/$CARGMT_VERSION

Eu quero substituir o texto acima pelo texto abaixo usando sed

$path_track/GMT/cayu/station/GMT/$CARGMT_VERSION

Onde version é uma variável.

Como podemos fazer isso?

    
por sap 03.07.2017 / 17:07

2 respostas

0

Como o caminho contém barras, você provavelmente não deseja usar o caractere / comum como delimitador para sed. Aqui, em vez de usar / , uso ^ :

$ echo $path_tryuio
/this/is/some_path
$ echo $path_tryuio | sed -e "s^/is^^"
/this/some_path

Observe também o uso de aspas duplas em vez de aspas simples - o shell não expande as variáveis entre aspas simples.

    
por 03.07.2017 / 17:56
0

Supondo que você queria o seguinte modificado

        path_tryuio=$path_opt/GMT/$CARGMT_VERSION

e não o que está à direita de = como normalmente é esperado, você pode conseguir isso usando sed como:

sed -e 's|path_tryuio=$path_opt/\(GMT/$CARGMT_VERSION\)|$path_track/GMT/cayu/station/|'

Note que no comando sed acima temos aspas simples, então as variáveis $ não serão interpoladas, e sim como strings literais.

O $ em $path_opt não será tratado como o final do espaço de padrão, já que há texto depois dele.

    
por 03.07.2017 / 18:28

Tags