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
.
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)
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.
sed -i '/^export MYAPP_HOME=\/opt\/myapp$/d' ~/.bash_profile
Experimente o vim-way:
ex -s +"g/MYAPP_HOME/d" -cwq file.txt
Tags linux shell-script bash-script