Variável em sed

7

Eu tenho um arquivo que contém nomes de arquivos com caminho absoluto.

No meio desse caminho, é um diretório variável, sempre que codifico a parte variável, ela funciona bem, mas quando eu a substituo pelo nome da variável, a parte sed não funciona.

A parte sed é para excluir o padrão ou para esse assunto, o caminho.

file='echo $one_file | sed 's:/dir1/dir2/$VAR/last_dir/::''
    
por bostjan 07.11.2013 / 09:52

1 resposta

8

Quando você usa aspas simples, também chamadas de aspas duras, os nomes das variáveis não são expandidos. Você precisaria usar aspas duplas, também conhecidas como aspas suaves.

sed "s:/dir1/dir2/$var/Last_dir/::"

ou escapa as citações:

sed 's:/dir1/dir2/'"$var"'/Last_dir/::'

Você também precisa ter certeza de que $var não possui nenhum caractere de dois-pontos, ponto, estrela, [ , nova linha ou barra invertida ou que, em caso afirmativo, eles são escapados.

    
por 07.11.2013 / 10:06