Χρησιμοποιώντας vi να αντικαταστήσει μια σειρά σε πολλαπλά αρχεία
Καμιά φορά, μπορεί να θέλετε να αντικαταστήσετε τις εμφανίσεις του σε μια σειρά πολλαπλών αρχείων.
Υπάρχει ένας εύκολος τρόπος να το πράξουν με τη βοήθεια του vi editor.
Αυτό το παράδειγμα θα καταδείξει τη δύναμη του vi:
Ας υποθέσουμε ότι έχετε 100. Html αρχεία και θέλετε να αντικαταστήσετε την ύπαρξη του αλφαριθμητικού '2007 'με '2008'.
Ως εκ τούτου, εκτελέστε τα παρακάτω στο προτροπή σας:
vi *. html
Αυτό θα ανοίξει όλα τα αρχεία που τελειώνουν με το «. Html" στο τρέχοντα κατάλογο εργασίας σας. Στη συνέχεια, δώστε την ακόλουθη εντολή:
: Argdo% s/2007/2008/g | wq
Αυτό είναι όλο! η παραπάνω εντολή βρόχο θα ξεπεράσουν κάθε αρχείου, που αντικαθιστά (%) του Word 2007 με το Word 2008 σε παγκόσμιο επίπεδο (ζ) έπειτα θα αποθηκεύσετε κάθε αρχείο (w) και την έξοδο από αυτήν (ιζ).
Σημειώστε ότι η συμβολοσειρά να βρείτε και το string που θα χρησιμοποιηθεί για την αντικατάσταση μπορεί να αντικατασταθεί με κανονικές εκφράσεις. Για παράδειγμα, ένα καρέ (^) αναφέρεται στην αρχή μιας γραμμής, το σύμβολο του δολαρίου ($) παραπέμπει στο τέλος της, κλπ. Έτσι, εάν επρόκειτο να αντικαταστήσει οποιαδήποτε γραμμή που αρχίζει με «δείγμα» και τελειώνει με «δοκιμασία», ένα θα μπορούσε να χρησιμοποιήσει:
: Argdo% s / ^ δείγμα δοκιμής .* $ / g | wc
όπου .* αγώνες τίποτα στο μεταξύ το string δύο.
Σημειώστε επίσης ότι μπορείτε να κάνετε τα βρείτε και να αντικαταστήσει τη δράση χωρίς σχέση με την υπόθεση (δηλαδή, μια αναζήτηση για «λέξη» θα ταιριάζει «λέξη»). Για το θέμα αυτό, απλά αντικαταστήστε το "/ g» με το «/ γι '
Thanx πολύ, με βοήθησε πάρα πολύ.
Έχω ένα σχόλιο, για το σχετικά μικρό αριθμό των αντικαταστάσεων, προτρέποντας για την αντικατάσταση του θα μπορούσε επίσης να είναι χρήσιμη.
: Argdo% s / search_string / replace_string / gc | wq
με ένα επιπλέον «γ» για την «επιβεβαίωση»
Ευχαριστώ και πάλι
Ευχαριστώ για αυτό το ίχνος, σώσατε με μια δέσμη των εργασιών με αυτό.
Πρέπει να έχετε σκεφτεί για τα τρόφιμα, όταν πληκτρολογείτε
Cheers
είναι καρέ όχι, καρότο!