Notepad ++ menemukan dan mengganti string dengan baris baru

212

Pertimbangkan skenario di mana Anda memiliki string spesifik yang ingin Anda temukan-dan-ganti. Anda ingin menggantinya dengan string baru yang berisi karakter baris baru (atau urutan karakter).

abc123 xyz456-blah
fsafd23 xyz456-green
89hjkf23 xyz456-red
afdsa23 xyz456-yellow
abaac123 xyz456-orange

Dalam skenario di atas, saya ingin menemukan " xyz" dan mengganti ruang dengan carriage return / newline.

Hasilnya akan terlihat seperti:

abc123
xyz456-blah
fsafd23
xyz456-green
89hjkf23
xyz456-red
   ︙

dll ...

Pertanyaan: Bagaimana Anda dapat dengan mudah mencapai ini menggunakan Notepad ++? Apakah ada alat lain yang Anda sarankan untuk dengan mudah melakukan perintah ini?

p.campbell
sumber

Jawaban:

279

Notepad ++ akan baik-baik saja.

Cari string:

 xyz
Perhatikan ruang di depan xyz.

Ganti string:

\ r \ nxyz

Anda juga perlu mengatur "Mode Pencarian" ke "Diperpanjang" (kotak grup kiri bawah dalam dialog Ganti ) agar Notepad ++ menghormati kode pelarian.


Beberapa latar belakang: "\ r \ n" adalah kode pelarian untuk carriage-return, standar untuk baris baru di Windows. Sistem unix-style hanya menggunakan \ n (baris baru). Sebagian besar IDE, termasuk Notepad ++, akan memahami kedua gaya dan menggambarkannya masing-masing dengan baris baru, tetapi utilitas inti Windows tidak memahami \ n sebagai setara dengan \ r \ n, sehingga yang terakhir biasanya paling sesuai jika file tersebut dimaksudkan untuk digunakan di lingkungan Windows.

pemarah
sumber
2
\ r \ n = Sintaks baris baru Windows. Namun, untuk semua hal selain notepad biasa, ia hanya akan menerima \ n untuk baris baru (yang juga lebih konvensional).
Macha
3
Frasa Anda "lebih konvensional" menyesatkan. "\ r \ n" adalah standar pada Windows. Hanya saja banyak editor dan IDE yang mengenali baris standar Unix / Linux yang mengakhiri "\ n" dan menampilkan dokumen yang sesuai. Tidak ada apa pun tentang "\ n" yang membuatnya lebih konvensional.
Brian Lacy
Sejujurnya, versi Win / DOS lebih masuk akal bagi saya. "\ r" berarti "Carriage Return, atau 'Kembalikan carriage / kursor ke awal baris'" dan "\ n" berarti "Maju carriage / kursor maju satu baris". Tentu saja, Unix datang 20 tahun sebelumnya, jadi saya rasa dalam hal ini Microsoft yang melanggar standar.
Brian Lacy
7
ini tidak akan berfungsi kecuali jika Anda mengatur mode pencarian, seperti yang ditentukan dalam jawaban lain: superuser.com/questions/34451/…
codeulike
7
Jika Anda mencoba mengganti string literal "\ r \ n" dengan baris baru yang sebenarnya, saya harus melakukan yang berikut: setel mode pencarian ke normal, temukan / ganti \ r \ n dengan ***. Kemudian atur mode pencarian ke Extended, cari / ganti *** dengan \ r \ n.
goku_da_master
61

Di Notepad ++, sangat mudah ...

  • Temukan: xyz
  • Ganti dengan: \ n


  • Mode Pencarian: Diperpanjang (\ n, \ t, dll)

Caranya adalah dengan mengatur mode pencarian.

Teman saya
sumber
1
Jawaban ini bekerja untuk saya, yang diterima tidak. Ver 5.8.6
bdwakefield
Ya sama di sini, jawaban yang diterima tidak menentukan penggunaan mode yang diperluas ..
Andy
Kenapa tidak \r\n(bukannya \n)?
Peter Mortensen
5

Saya sedikit curang ketika S & Dering karakter yang saya tidak bisa ketik langsung ke dalam bidang teks (misalnya tab dan baris baru). Temukan suatu tempat di dokumen yang sudah memiliki karakter itu, lalu salin, dan rekatkan ke bidang ganti.

Jadi, dalam contoh Anda, mulai dari awal satu baris, klik, seret ke ujung baris sebelumnya, salin, dan tempel ke dialog Ganti.

Macha
sumber
5

Dalam dialog "Ganti", pastikan bahwa di bawah Mode Pencarian Anda telah memilih "Diperpanjang". Kemudian ketik kotak temukan, masukkan "xyz" dan ganti dengan "\ n".

tj111
sumber
1
Kenapa tidak \r\n(bukannya \n)?
Peter Mortensen
2

Untuk Notepad ++, ubah mode pencarian ke Extended lalu di bidang Ganti dengan penggunaan \ n .

dlux
sumber
1
Kenapa tidak \r\n(bukannya \n)?
Peter Mortensen