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 / 15: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 / 15: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 / 16:28

Tags

yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warning – yii\base\ErrorException

PHP Startup: Unable to load dynamic library 'memcached.so' (tried: /usr/lib/php/20190902/memcached.so (/usr/lib/php/20190902/memcached.so: undefined symbol: igbinary_serialize), /usr/lib/php/20190902/memcached.so.so (/usr/lib/php/20190902/memcached.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '905017',
    'url' => 'replace-text-with-sed-in-linux',
];

$_COOKIE = [
    '_csrf-frontend' => '50d926f96e36b46f5056dd80f00122d080b3bca0603bbc8df6d45b5430e60984a:2:{i:0;s:14:"_csrf-frontend";i:1;s:32:"woWGccMjyrFcESLqeIj6DDPuIV_6xbYZ";}',
    'advanced-frontend' => 'dh64efit5shsmlqvu83hs33br9',
];

$_SESSION = [
    '__flash' => [],
];