Como remover qualquer string de um arquivo via shell scripts?

8

Eu tento remover a string de .bash_profile . String é adicionada quando meu script de shell é executado:

Minha string no bash_profile da seguinte forma:

# for Myapllication
export MYAPP_HOME=/opt/myapp

Eu quero remover as seqüências de caracteres de .bash_profile quando myapp for removido por meio de rpm .

Como remover qualquer string de um arquivo via shell script? (ou possível método alternativo)

    
por Gyhot 29.05.2013 / 16:55

4 respostas

9

Você pode remover uma string de um arquivo de texto com sed (existem outras ferramentas).

Por exemplo:

sed -i -e '/myapp/d' .bash_profile

remove de .bash_profile todas as linhas que contêm a string myapp .

    
por 29.05.2013 / 17:07
10

Um arquivo como ~/.bash_profile mora em um diretório inicial de um usuário. Tal arquivo está completamente sob controle do usuário. Comandos de atuação global como rpm não devem alterar esses arquivos.

  • Você geralmente tem um arquivo de configuração base, que é entregue pelo pacote rpm.

  • Você então tem um arquivo de configuração global que pode ser usado pelo root para sobrescrever algumas preferências específicas do sistema em questão.

  • Em seguida, você tem arquivos de configuração pessoais em seu diretório pessoal, que podem ser usados para substituir a configuração global por suas preferências pessoais.

Um comando como rpm só deve alterar o primeiro e nunca alterar o último.

    
por 29.05.2013 / 17:14
3
sed -i '/^export MYAPP_HOME=\/opt\/myapp$/d' ~/.bash_profile
    
por 29.05.2013 / 17:08
0

Experimente o vim-way:

ex -s +"g/MYAPP_HOME/d" -cwq file.txt
    
por 30.04.2015 / 23:04