Korzystanie vi zastąpić ciąg znaków w wielu plikach

09 sierpnia 2008

Czasem warto zastąpić wystąpień ciągu wielu plików.

Nie jest to łatwy sposób to zrobić za pomocą edytora vi.

Ten przykład ilustruje siłę vi:

Załóżmy, że masz 100. Plików html, i chcesz wymienić wystąpienie ciągu "2007" z "2008".

W związku z tym, należy wykonać następujące w swoim wierszu polecenia:

vi *. html

Spowoduje to otwarcie wszystkich plików z rozszerzeniem ". Html" w bieżącym katalogu. Następnie wydajemy polecenie:

: Argdo% s/2007/2008/g | wq

To jest to! Powyższe polecenie pętli na każdym pliku, zastępując (%) Word 2007 z napisem 2008 na całym świecie (g) to będzie zapisać każdy plik (w) i wysiadania z niego (q).

Zauważ, że ciąg do znalezienia i ciąg użyć do zastąpienia można zastąpić wyrażenia regularne. Na przykład, karetki (^) odnosi się do początku linii, znak dolara ($) odnosi się do końca, itd. Tak więc, jeśli miały zastąpić każdej linii, począwszy od "próby", a kończąc na "test", jeden mogą korzystać:

:% S argdo / próbkę ^ .* test $ / g | wc

gdzie .* meczach nic pomiędzy dwoma ciąg.

Zauważ też, że może zrobić to znaleźć i zastąpić działanie bez poszanowania dla sprawy (tzn. szukaj "słowo" pasuje "słowo"). Zresztą, wystarczy wymienić "/ g" z "/ gi"

Tagi:
  1. Than you very much
    27 września 2010 na 13:49

    Niż dużo, to pomogło mi też.

    Mam uwagę na stosunkowo małą liczbę wymian, monitowanie o zastąpienie może być również użyteczne.

    :% S argdo / SEARCH_STRING / replace_string / gc | wq

    z dodatkowym "c" na "potwierdzenie"

    Jeszcze raz dziękujemy :)

  2. Jens
    16 lipca 2010 o 20:35

    Dzięki za podpowiedź, uratowałeś mnie sporo pracy z tym.

  3. admin
    29 sierpnia 2008 o 03:43

    Musi być myślenie o jedzeniu to podczas pisania :)
    Okrzyki

  4. Mike
    23 sierpnia 2008 o 12:24

    to karetka nie, marchew!