Come rimuovere qualsiasi stringa da un file tramite script di shell?


9

Provo a rimuovere la stringa da .bash_profile. La stringa viene aggiunta quando viene eseguito il mio script di shell:

La mia stringa su bash_profile come segue:

# for Myapllication
export MYAPP_HOME=/opt/myapp

Voglio rimuovere le stringhe da .bash_profilequando myapp viene rimosso tramite rpm.

Come rimuovere qualsiasi stringa da un file tramite script di shell? (o possibile metodo alternativo)

Risposte:


11

È possibile rimuovere una stringa da un file di testo con sed (esistono altri strumenti).

Per esempio:

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

rimuove da .bash_profile ogni riga contenente la stringa myapp.


10

Un file come ~/.bash_profilevive in una home directory di un utente. Tale file è completamente sotto il controllo dell'utente. Comandi di recitazione globale come rpmnon dovrebbero cambiare tali file.

  • Di solito si dispone di un file di configurazione di base, che viene fornito dal pacchetto rpm.

  • Quindi hai un file di configurazione globale che può essere usato da root per sovrascrivere alcune preferenze specifiche per il sistema dato.

  • Quindi hai i file di configurazione personali nella tua home directory che puoi usare per sovrascrivere le impostazioni globali con le tue preferenze personali.

Un comando come rpmdovrebbe cambiare solo il primo e non cambiare mai il secondo.


Puoi suggerire un URL da esaminare per questo argomento?
Gyhot,

1
@Gyhot unix.stackexchange.com/questions/77518/… è buono. Se la distribuzione di destinazione ha una /etc/profile.ddirectory, rilascia un file contenente quella exportriga lì. Altrimenti, è possibile modificare /etc/profile, ma fare molta attenzione a non annullare le personalizzazioni da parte dell'amministratore di sistema.
Gilles 'SO- smetti di essere malvagio'


0

Prova la vim-way:

ex -s +"g/MYAPP_HOME/d" -cwq file.txt
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.