Χρησιμοποιώντας vi να αντικαταστήσει μια σειρά σε πολλαπλά αρχεία

9 Αυγούστου 2008

Καμιά φορά, μπορεί να θέλετε να αντικαταστήσετε τις εμφανίσεις του σε μια σειρά πολλαπλών αρχείων.

Υπάρχει ένας εύκολος τρόπος να το πράξουν με τη βοήθεια του 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» με το «/ γι '

Ετικέτες:
  1. Από πολύ
    27 του Σεπτεμβρίου 2010 στις 13:49

    Thanx πολύ, με βοήθησε πάρα πολύ.

    Έχω ένα σχόλιο, για το σχετικά μικρό αριθμό των αντικαταστάσεων, προτρέποντας για την αντικατάσταση του θα μπορούσε επίσης να είναι χρήσιμη.

    : Argdo% s / search_string / replace_string / gc | wq

    με ένα επιπλέον «γ» για την «επιβεβαίωση»

    Ευχαριστώ και πάλι :)

  2. Jens
    16 του Ιούλη 2010 στις 20:35

    Ευχαριστώ για αυτό το ίχνος, σώσατε με μια δέσμη των εργασιών με αυτό.

  3. admin
    29 Αυγούστου 2008 στις 03:43

    Πρέπει να έχετε σκεφτεί για τα τρόφιμα, όταν πληκτρολογείτε :)
    Cheers

  4. μικρόφωνο
    23 Αύγ 2008 στις 12:24

    είναι καρέ όχι, καρότο!