* Εννοείς έτσι;
- Κώδικας: Επιλογή όλων
sed 's/"string 1"/"string 2"/g' example.txt
Δεν χρειάζονται, αν τα προσθέσεις θα ψάχνει χαρακτήρες εισαγωγικών στο κείμενο.
Τα εξωτερικά εισαγωγικα που έβαλες (single quotes) ως 's/bla/bla bla/g' είναι σωστό.
* To "g" είναι για επανάληψη δλδ. χωρίς το g αν έχεις δύο string 1 στην ίδια γραμμή θα αντικαταστήσει μόνο το πρώτο.
Αν είναι σε διαφορετικές γραμμές, θα τις αλλάξει και χωρίς το "g".
έγραψε:
$ echo -e "my string 1\nmy string 2"
my string 1
my string 2
$ echo -e "my string 1\nmy string 2" | sed -e 's/my string/moo/'
moo 1
moo 2
* Προτίμησε να εκτελείς το sed με -e. Έτσι μπορείς να προσθέσεις περισσότερες τροποποιήσεις:
- Κώδικας: Επιλογή όλων
sed -e 's/string 1/string 2/' -e 's/other string/other string 2/' example.txt
* Για wildcards φυσικά, υποστηρίζεται σε βαθμό shell (το προσφέρει το bash):
http://www.tuxfiles.org/linuxhelp/wildcards.html* Μπορείς να αποθηκεύσεις αμέσως τις αλλαγές με την επιλογή -i
Αν χρησιμοποιήσεις -i.backup θα αποθηκεύσει το original αρχείο ως myfile.backup
Π.χ. backup:
- Κώδικας: Επιλογή όλων
sed -i.backup -e 's/string 1/string 2/g' example*.txt
example*.txt -> Το original αρχείο θα αποθηκευθεί ως example*.txt.backup και τα αρχεία example*.txt θα τροποποιηθούν.
..no backup:
- Κώδικας: Επιλογή όλων
sed -i -e 's/string 1/string 2/g' example*.txt
example*.txt -> Το original αρχείο δεν θα αποθηκευθεί και τα αρχεία example*.txt θα τροποποιηθούν.
* Αν για κάποιο λόγο θέλεις να κάνεις match τον χαρακτήρα slash "/", μπορείς να χρησιμοποιήσεις άλλο χαρακτήρα στη θέση του στο sed:
* Υπάρχει μια λίστα με sed one-liners:
http://sed.sourceforge.net/sed1line.txt - μπορεί να σου φανεί χρήσιμη
