Temukan CRLF di Notepad ++


316

Bagaimana saya bisa menemukan / mengganti semua karakter CR / LF di Notepad ++?

Saya mencari sesuatu yang setara dengan karakter khusus ^ p di Microsoft Word.


Hanya untuk membangun sedikit pada apa yang disebut 'thenonhacker'. Kami menggunakan ULtraEdit-32 di pekerjaan, dan bekerja dengan file EDI (x.12), kami sering harus membungkus atau membuka data. 2 string Search & Replace yang paling umum adalah "^ p" & "~". berjalan satu arah akan mengganti "~" dengan CR / LF untuk memudahkan pembacaan setiap segmen. Cara sebaliknya menempatkan file kembali ke format yang dibutuhkan penerjemah EDI. Untuk orang-orang malas seperti saya, saya hanya memiliki kunci peta itu untuk mudah digunakan.
DavidGrove

1
Meskipun tidak terkait, tetapi membantu. Saya mengunjungi halaman ini setelah mencari metode untuk mengkonversi file teks UNIX ke format Windows di Windows. Inilah yang saya lakukan dan kerjakan CTRL+H, pilih "Mode Pencarian: Ekspresi Reguler". "Temukan Apa: $" dan "Ganti dengan: \ r". Salin tempel konten ke Notepad atau simpan ke disk.
Guru

2
Yay! Notepad ++ 6.0 memang membawa dukungan PCRE: regex seperti [\r\n]+sekarang berfungsi. Saya telah memperbarui jawaban saya, dan akan merayakan!
VonC

@VonC: Saya kira saya perlu memperbarui semua [notepad ++] jawaban saya juga :)
BoltClock

Jawaban:


412

[\r\n]+ harus bekerja juga

Pembaruan, 26 Maret 2012, tanggal rilis Notepad ++ 6.0 :

Ya Tuhan, itu benar-benar berfungsi sekarang !!!

PCRE regexp di Notepad ++


Jawaban asli 2008 (Notepad ++ 4.x) - 2009-2010-2011 (Notepad ++ 5.x)

Sebenarnya tidak, sepertinya tidak berfungsi dengan regexp ...

Tetapi jika Anda memiliki Notepad ++ 5.x, Anda dapat menggunakan mode pencarian ' extended ' dan mencari \r\n. Itu memang menemukan semua milik Anda CRLF.

(Saya menyadari ini adalah jawaban yang sama dari yang lain, tetapi sekali lagi, 'extended mode' hanya tersedia dengan Notepad ++ 4.9, 5.x dan lebih banyak lagi)


Sejak April 2009, Anda memiliki artikel wiki di situs Notepad ++ tentang topik ini:
" Cara Mengganti Baris Berakhir, sehingga mengubah tata letak baris ".
(disebutkan oleh georgiecasey dalam jawabannya di bawah )

Beberapa ekstrak yang relevan mencakup proses pencarian berikut:

Pencarian sederhana ( Ctrl+ F), Mode Pencarian =Normal

Anda dapat memilih sebuah EOLdi jendela pengeditan.

  • Cukup pindahkan kursor ke akhir baris, dan ketik Shift+ RightPanah.
  • atau, untuk memilih EOLdengan mouse, mulai dari ujung baris dan seret ke awal baris berikutnya; menyeret ke kanan EOLtidak akan berhasil. Anda dapat menyalin EOLdan menempelkannya secara manual ke bidang untuk file Unix ( LF-hanya).

Pencarian sederhana (Ctrl + F), Mode Pencarian = Diperpanjang

Opsi "Extended" menunjukkan \ndan \rsebagai karakter yang dapat dicocokkan.
Seperti halnya mode pencarian Normal, Notepad ++ sedang mencari karakter yang tepat.
Mencari \rdalam format format UNIX tidak akan menemukan apa pun, tetapi mencari \nkehendak. Demikian pula, file berformat Macintosh akan berisi \rtetapi tidak \n.

Pencarian sederhana (Ctrl + F), Mode Pencarian = Ekspresi reguler

Ekspresi reguler menggunakan karakter ^dan $untuk menjangkar string yang cocok ke awal atau akhir baris. Misalnya, mencari return;$akan menemukan kemunculan "kembali;" yang terjadi tanpa teks berikutnya pada baris yang sama. Karakter jangkar bekerja secara identik dalam semua format file.
'.' dot metacharacter tidak cocok dengan akhir baris.

[Diuji dalam Notepad ++ 5.8.5]: pencarian ekspresi reguler dengan eksplisit \ratau \ntidak berfungsi (bertentangan dengan dokumentasi Scintilla ) .
Tidak juga pencarian pada LF eksplisit (disisipkan), atau pada karakter EOL (tidak terlihat) yang ditempatkan di bidang ketika EOL dipilih. Pencarian lanjutan ( Ctrl+ R) tanpa regexp

Ctrl+ Makan menyisipkan sesuatu yang cocok dengan baris baru. Mereka akan diganti oleh string pengganti.
Saya merekomendasikan metode ini sebagai yang paling dapat diandalkan, kecuali jika Anda benar-benar perlu menggunakan regex.
Sebagai contoh, untuk menghapus setiap baris kedua dalam file spasi ganda, masukkan Ctrl+ Mdua kali di kotak string pencarian, dan satu kali di kotak ganti string.

Pencarian lanjutan ( Ctrl+ R) dengan Regexp.

Tidak Ctrl+ M, $juga \r\ntidak cocok.


Wiki yang sama juga menyebutkan alternatif editor Hex :

  • Ketikkan string baru di awal dokumen.
  • Kemudian pilih untuk melihat dokumen dalam mode Hex .
  • Pilih salah satu baris baru dan tekan Ctrl+ H.
  • Ketika Anda memiliki kotak dialog Ganti, pilih di latar belakang string pengganti baru dan Ctrl+ Csalin untuk menempelkannya di Ganti dengan input teks.
  • Kemudian Ganti atau Ganti Semua seperti yang Anda inginkan.

Catatan: karakter yang dipilih untuk baris baru biasanya muncul sebagai 0a.
Ini mungkin memiliki nilai yang berbeda jika file dalam Format Windows. Dalam hal ini Anda selalu dapat pergi ke Edit -> EOL Conversion -> Convert to Unix Format, dan setelah penggantian kembali dan Edit -> EOL Conversion -> Convert to Windows Format.


1
Saya menjalankan v 4.7. Ditingkatkan ke versi terbaru dan mode diperpanjang berfungsi seperti yang diiklankan. Terima kasih untuk semua yang merespons.
polara

+1: Saya menjalankan 4.6, dan memiliki masalah serupa. Dan terima kasih atas jawaban Anda, saya meningkatkan ke 5+. Terima kasih!
paercebal

Berhasil! Tapi ini membuat Notepad ++ RegExp payah. UltraEdit-32 lebih pintar, Anda hanya perlu \ n dan Anda telah menyelesaikan pekerjaan Anda ...
thenonhacker

\ r \ n bekerja untuk saya, tetapi tidak \ n, yang merupakan semacam kontra-intuitif jika Anda seorang pengembang yang terbiasa menjadi singkatan untuk \ r \ n.
Warren P

2
@ GarretWilson Saya mengkonfirmasi [^\r]\nberfungsi dengan baik (pencarian regex): i.stack.imgur.com/PxZWD.png
VonC

22

Tampaknya ini adalah FAQ , dan resolusi yang ditawarkan adalah:

Pencarian sederhana (Ctrl + H) tanpa regexp

Anda dapat mengaktifkan Lihat / Tampilkan Akhir Baris atau lihat / Tampilkan Semua, dan pilih karakter baris baru yang sekarang terlihat. Kemudian ketika Anda memulai perintah beberapa karakter yang cocok dengan karakter baris baru akan disisipkan ke dalam bidang pencarian. Kecocokan akan diganti oleh string pengganti, tidak seperti dalam mode regex.

Catatan 1: Jika Anda memilihnya dengan mouse, mulai tepat sebelum mereka dan seret ke awal baris berikutnya. Menyeret ke ujung garis tidak akan berhasil.

Catatan 2: Anda tidak bisa menyalin dan menempelkannya sendiri ke dalam bidang.

Pencarian lanjutan (Ctrl + R) tanpa regexp

Ctrl + M akan memasukkan sesuatu yang cocok dengan baris baru. Mereka akan diganti oleh string pengganti.


2
Anda dapat menggunakan Ctrl + M untuk memasukkan baris baru di string ganti juga.
Dusty Campbell

2
Ini adalah FAQ karena ini adalah sedikit kutil desain pada produk yang dinyatakan brilian.
Warren P

11

Pada dialog Ganti, Anda ingin mengatur mode pencarian ke "Diperpanjang". Mode Ekspresi Normal atau Biasa tidak akan berfungsi.

Kemudian cari "\ r \ n" (atau hanya \ n untuk file unix atau hanya \ r untuk file format mac), dan atur ganti ke apa pun yang Anda inginkan.


Jawaban ini sudah ketinggalan zaman ketika ditulis - Mac belum menggunakan \rsejak tahun 2001 ... (sudah unix sekarang)
Jasper

9

Saya tidak beruntung dengan ekspresi reguler dari jendela temukan / ganti.

Namun, ini berfungsi di Notepad ++ v4.1.2:

  1. Gunakan menu "View | Show end of line" untuk mengaktifkan tampilan karakter end of line. (Umpan garis balik kereta harus ditampilkan sebagai 'karakter' CRLF yang diarsir.)

  2. Pilih salah satu 'karakter' CRLF (letakkan kursor tepat di depan salah satu, tahan tombol SHIFT, dan kemudian tekan tombol RIGHT CURSOR sekali).

  3. Salin karakter CRLF ke clipboard.

  4. Pastikan Anda tidak memiliki dialog temukan atau temukan / ganti yang terbuka.

  5. Buka dialog temukan / ganti. Kolom 'Temukan apa' menampilkan konten clipboard: dalam hal ini karakter CRLF - yang ditampilkan sebagai 2 'karakter kotak' (mungkin itu adalah karakter yang tidak patut dicetak?)

  6. Pastikan opsi 'Ekspresi reguler' dalam posisi OFF.

Sekarang Anda harus dapat menghitung, menemukan, atau mengganti yang diinginkan.



4

Cara saya menemukannya berfungsi adalah dengan menggunakan fungsi Ganti, dan menggunakan "\ n", dengan mode "Diperpanjang". Saya menggunakan versi 5.8.5.


1
Salah satu dari sedikit item di halaman ini yang berfungsi. Menggunakan notepadd ++ 5.8.6. Sangat sulit untuk mempercayai sesuatu yang sederhana ini harus membutuhkan jumlah jawaban yang terlalu rumit dan seringkali tidak berfungsi yang telah diberikan di utas ini.
Andrew S

4

Pada 2013, v6.13 atau lebih baru, gunakan:

Edit Menu → Konversi EOLFormat Windows .


Ini tidak mencakup kasus umum penggantian CRLF dengan satu atau lebih karakter sewenang-wenang. Atau mengganti satu atau lebih karakter arbitrer dengan CRLF (misalkan ganti karakter spasi dengan CRLF).
Peter Mortensen

2

Dengan asumsi ia memiliki pencarian "ekspresi reguler", cari \ r \ n. Saya lebih suka \ r? \ N, karena beberapa file tidak menggunakan carriage return.

EDIT: Terima kasih atas umpan baliknya, siapa pun yang menolaknya. Saya telah belajar bahwa ... yah, tidak ada, karena Anda tidak memberikan umpan balik. Kenapa ini salah?


1
Saya tidak yakin persis mengapa itu tidak berhasil tetapi tidak. Saya berasumsi bahwa implementasi regex ini (di Notepad ++) hanya memeriksa satu baris pada satu waktu dan mengabaikan karakter baris baru. Mungkin itulah sebabnya Anda ditolak.
frank hadder

1
ya. regex adalah baris per baris di notepad ++, jadi Anda dapat mencocokkan posisi di EOL dengan $ tetapi tidak dapat mencari / mengganti ekspresi yang melewati batas garis.
Warren P

2

Gunakan opsi pencarian lanjutan ( Ctrl+ R) dan gunakan pintasan keyboard untuk CRLF ( Ctrl+ M) untuk memasukkan carriage return.


Ctrl + R tidak bekerja untuk saya ketika saya mencobanya. Itu memasukkan karakter kontrol aneh di dokumen, " DC2". Versi Notepad ++: 7.5.6 (2018-05-19).
Peter Mortensen

2

Jika Anda perlu melakukan penggantian regexp kompleks termasuk \ r \ n, Anda dapat mengatasi batasan dengan pendekatan tiga langkah:

  1. Ganti semua \r\ndengan tag, misalkan #GO#→ Centang 'Diperpanjang', ganti \r\ndengan#GO#
  2. Lakukan regexp Anda, misalnya menghapus multiline ICON="*"dari bookmark html → Periksa regexp, gantiICON=.[^"]+.> by >
  3. Pasang kembali \ r \ n → Periksa 'Diperpanjang', ganti #GO#dengan\r\n

2

Pergi ke Lihat -> Tampilkan simbol -> Tampilkan semua karakter // Ini bekerja untuk saya


1

Buat pengaturan ini. Menu-> View-> Show Symbol-> hapus centang Show End of the Line


1
Ini tidak menjawab pertanyaan awal. Tolong jelaskan mengapa Anda pikir ini adalah kontribusi yang bermanfaat untuk tanya jawab ini. Baca juga halaman pusat bantuan tentang cara membuat jawaban yang bermanfaat.
AdrianHHH

1

Saya membuka file di Notepad ++ dan melakukan penggantian dalam beberapa langkah:

  1. Ganti semua "\ r \ n" dengan "\ r \ n"
  2. Ganti semua "; \ r \ n" dengan "\ r \ n"
  3. Ganti semua "\ r \ n" dengan ""

Ini menempatkan semua jeda di mana mereka seharusnya dan menghapus yang memecah file.

Ini berhasil untuk saya.


1

Saya benar-benar tidak dapat melakukan ini di NP v6.9. Saya menemukannya cukup mudah di Msoft Word (2K).

Buka dokumen, pergi ke edit-> ganti.

Kemudian di bagian bawah kotak pencarian, klik "lebih" lalu cari tombol "Khusus" dan mereka memiliki beberapa hal untuk Anda. Untuk gaya Dos, saya menggunakan paragraf "paragraf". Ini adalah pasangan cr di windows land.


0

Lakukan saja dengan menemukan dan mengganti dengan kosong di bidang ganti sehingga semuanya naik ke satu baris. Kemudian lakukan pencarian dan ganti (dalam kasus saya dengan titik dua) dan ganti dengan; \ n

:) -T & C


1
Ini berbeda dengan jawaban yang ada bagaimana?
Semua Pekerja Sangat Penting

0

Untuk mengubah dokumen baris terpisah menjadi satu baris, dengan setiap baris membentuk satu entri dalam daftar yang dipisahkan koma:

  1. ctrl+ funtuk membuka pencarian / replacer.
  2. Klik tab "Ganti".
  3. Isi entri "Temukan apa" dengan " \r\n".
  4. Isi "Ganti dengan" entri dengan " ," atau " , " (tergantung pada preferensi).
  5. Hapus centang pada kotak centang "Cocokkan seluruh kata" (bit penting yang menghindari logika)
  6. Periksa tombol radio "Diperpanjang".
  7. Klik tombol "Ganti semua".

Langkah-langkah ini mis

bar foo

bar baz

baz foo

ke:

bar foo, bar baz, baz foo

atau: (tergantung pada preferensi)

bar foo, bar baz, baz foo


0

Mungkin Anda bisa menggunakan plugin TextFX

Di TextFX, buka textfx edit → hapus baris kosong


0

Untuk menemukan segala jenis urutan pemutusan baris gunakan konstruksi regex berikut:

\R

Untuk mencari dan memilih berturut-turut baris istirahat urutan, tambahkan +setelah \R: \R+.

Pastikan Anda menghidupkan mode Ekspresi reguler :

masukkan deskripsi gambar di sini

Itu cocok:

  • U+000DU+000A -Urutan CRLF
  • U+000A - LINE FEED , LF
  • U+000B - LINE TABULATION , VT
  • U+000C - FORM FEED , FF
  • U+000D - CARRIAGE RETURN , CR
  • U+0085 - NEXT LINE , NEL
  • U+2028 - LINE SEPARATOR
  • U+2029 - PARAGRAPH SEPARATOR
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.