Menggunakan vi untuk mengganti string dalam beberapa file

Kadang-kadang Anda mungkin ingin mengganti kejadian string di beberapa file.

Ada cara mudah untuk melakukannya dengan bantuan editor vi.

Contoh ini akan mengilustrasikan kekuatan dari vi:

Misalkan Anda memiliki 100 file html,. Dan Anda ingin mengganti terjadinya string '2007 'dengan '2008'.

Dengan demikian, jalankan perintah berikut pada prompt Anda:

vi *. html

Ini akan membuka semua file yang berakhir dengan 'html.' Di direktori kerja Anda saat ini. Lalu mengeluarkan perintah berikut:

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

Itu saja! perintah di atas akan loop atas setiap file, mengganti (%) 2007 dengan kata kata 2008 global (g) maka akan menyimpan file masing-masing (w) dan keluar dari itu (q).

Perhatikan bahwa string untuk menemukan dan string digunakan untuk pengganti dapat digantikan dengan ekspresi reguler. Sebagai contoh, sebuah tanda sisipan (^) mengacu pada awal baris, tanda dolar ($) mengacu ke ujungnya, dll Jadi jika kita mengganti baris yang dimulai dengan 'sampel' dan berakhir dengan 'test', salah satu bisa menggunakan:

: Argdo% s / ^ .* sampel uji $ / g | wc

mana .* pertandingan apa pun di antara dua string.

Perhatikan juga bahwa Anda dapat melakukan mencari dan mengganti tindakan tanpa menghormati kasus (yaitu pencarian untuk 'kata' akan cocok 'kata'). Untuk itu, cukup mengganti '/ g' dengan '/ gi'

4 Komentar

mike Agustus 23, 2008 at 12:24

itu tanda sisipan, bukan wortel!

admin 29 Agustus 2008 di 03:43

Harus telah berpikir tentang makanan ketika mengetik :)
Tepuk tangan

Jens Juli 16, 2010 at 08:35

Terima kasih untuk petunjuk ini, Anda menyelamatkan saya banyak bekerja dengan itu.

Daripada Anda 27 September sangat banyak, 2010 at 01:49

Thanx banyak, itu membantu saya juga.

Saya tidak punya komentar, untuk jumlah yang relatif kecil dari pengganti, disuruh untuk mengganti juga dapat berguna.

: Argdo% s / SEARCH_STRING / replace_string / gc | WQ

dengan tambahan 'c' untuk 'konfirmasi'

Terima kasih lagi :)

Tinggalkan komentar

Komentar Anda