È possibile cercare in un file utilizzando shell e quindi sostituire un valore? Quando installo un servizio mi piacerebbe essere in grado di cercare una variabile in un file di configurazione e quindi sostituire/inserire le mie impostazioni in quel valore.Trova e sostituisci script di shell
risposta
Certo, puoi farlo usando sed o awk. esempio:
sed -i 's/Andrew/James/g' /home/oleksandr/names.txt
Generalmente uno strumento come awk o sed viene utilizzato per questo.
$ sed -i 's/ugly/beautiful/g' /home/bruno/old-friends/sue.txt
È possibile utilizzare sed per fare questo:
sed -i 's/toreplace/yoursetting/' configfile
sed è probabilmente disponibili su ogni Unix come sistema là fuori. Se si desidera sostituire più di un avvenimento è possibile aggiungere un g al s-comando:
sed -i 's/toreplace/yoursetting/g' configfile
Fare attenzione poiché questo può distruggere completamente il vostro configfile se non si specifica correttamente la toreplace valore. sed supporta anche le espressioni regolari nella ricerca e nella sostituzione.
sed -i 's/variable/replacement/g' *.conf
sguardo al awk UNIX power tools, sed, grep e in-place edit of files con Perl.
È possibile utilizzare sed per eseguire la ricerca/sostituzione. Io di solito faccio questo da uno script di shell bash, e spostare il file originale che contiene i valori da sostituire con un nuovo nome, ed eseguire sed scrivendo l'uscita al mio nome del file originale in questo modo:
#!/bin/bash
mv myfile.txt myfile.txt.in
sed -e 's/PatternToBeReplaced/Replacement/g' myfile.txt.in > myfile.txt.
Se don' t specificare un output, la sostituzione andrà a stdout.
filepath="/var/start/system/dir1"
searchstring="test"
replacestring="test01"
i=0;
for file in $(grep -l -R $searchstring $filepath)
do
cp $file $file.bak
sed -e "s/$searchstring/$replacestring/ig" $file > tempfile.tmp
mv tempfile.tmp $file
let i++;
echo "Modified: " $file
done
Potresti controllare il 'codice di inserimento qui 'nel tuo codice? Probabilmente non dovrebbe essere lì. A proposito: nella maggior parte dei casi è una buona idea fornire commenti nella soluzione o almeno riassumere l'approccio che hai scelto per affrontare il problema. –
- 1. String Trova e sostituisci metodo
- 2. Trova e sostituisci con JavaScript
- 3. Trova e sostituisci più file
- 4. Trova e sostituisci per un'area di testo
- 5. Trova e sostituisci stringa in un file
- 6. Visual Studio, Trova e sostituisci, regex
- 7. Sed Trova e sostituisci con parentesi graffe
- 8. Trova/Sostituisci usando grep e TextWrangler
- 9. Trova e sostituisci stringa HTML con jQuery
- 10. Trova e sostituisci file non riesce
- 11. Trova e sostituisci più valori in python
- 12. Chrome Web Inspector: Trova e sostituisci
- 13. Trova e sostituisci stringa nel parametro bash
- 14. Script e sicurezza della shell
- 15. Shell Script e SQL risultati
- 16. Trova e sostituisci in un file di grandi dimensioni
- 17. Trova e sostituisci la stringa nel mio testo con VBScript
- 18. haskell e script di shell Unix
- 19. Script di shell per inviare e-mail
- 20. script di shell: if
- 21. Shell array di script
- 22. Trova e sostituisci più file sulla riga di comando
- 23. XCode Trova e sostituisci tutti i file di progetto
- 24. Vim: trova e sostituisci un progetto di grandi dimensioni?
- 25. Utilizzo di Notepad ++ Trova e sostituisci con espressione regolare
- 26. Come chiamare uno script di shell e passare argomento da un altro script di shell
- 27. Trova e sostituisci una stringa in più file usando lo script Batch
- 28. Trova/Sostituisci nell'area di lavoro in Eclipse
- 29. Perché Anteprima pulsanti disabili/Sostituisci in Trova & Sostituisci nel progetto
- 30. PowerShell: Trova/Sostituisci pattern di caratteri di controllo ASCII
Certo che puoi, usa sed! – Mithrandir