2012-12-01 38 views
8

Ho un file di testo file1.txt su Unix. Mi piacerebbe produrre un altro file file2.txt, in cui sostituisco tutte le occorrenze di apple-pie con apple_pie. Quale comando posso usare?Sostituzione stringa nel file Unix

risposta

17

Usa sed di fare una sostituzione globale sulla file1.txt e reindirizzare l'output file2.txt:

sed 's/apple-pie/apple_pie/g' file1.txt > file2.txt 
1

sed ha prestazioni migliori rispetto awk ma entrambi lavorerà per questa ricerca e sostituzione. Reference

Se metti i comandi in uno script (ad esempio, ksh, sh) allora qui è la sintassi:

awk '{gsub(/apple-pie/,"apple_pie");print}' "file1.txt" > "file2.txt" 
sed -e 's/apple-pie/apple_pie/g' "file1.txt" > "file2.txt" 
Problemi correlati