Menghapus garis kosong di Notepad ++

384

Bagaimana saya bisa mengganti baris kosong di Notepad ++? Saya mencoba mencari dan mengganti dengan baris kosong di temukan, dan tidak ada di ganti, tetapi tidak berhasil; mungkin perlu regex.

nomoreflash
sumber

Jawaban:

395

Anda memerlukan sesuatu seperti ekspresi reguler.

Anda harus dalam Extendedmode

Jika Anda ingin semua baris berakhir pada baris digunakan \r\n. Jika Anda hanya ingin menghapus baris kosong , gunakan \n\rseperti yang awalnya disarankan @Link.

Ganti ekspresi dengan tidak ada.

Brad
sumber
21
Pertama-tama pilih 'extended` dalam mode pencarian.
q0987
14
Untuk mendapatkan garis Anda agar tidak bergabung bersama, Anda harus mencari \r\n\r\ndan mengganti dengan \r\n.
Robert Kaucher
1
Lihat komentar @ BoltClock di bawah ini. Juga, jika file Anda disimpan dengan ujung garis Unix, Anda dapat mengubahnya ke ujung garis Windows di Edit> EOL Conversion> Windows Format sebelum melakukan pencarian dan ganti.
Big McLargeHuge
9
Jika Anda ingin menghapus garis dengan hanya spasi dan tab atau tidak sama sekali, coba gunakan ganti regex untuk mencocokkan \r\n\W*\r\ndan menggantinya dengan\r\n
Myster
2
@ ST3 hmm apa yang saya pikirkan, Yang ini jauh lebih baik: (\r\n|\r|\n)(\s*(\r\n|\r|\n))+dan ganti dengan \r\nmelihatnya beraksi di sini: regex101.com/r/qD9dB1/1
Myster
567

Sekarang ada cara bawaan untuk melakukan ini pada versi 6.5.2

Edit -> Line Operations -> Remove Empty Lines atau Remove Empty Lines (Containing Blank characters)

Cuplikan layar untuk menghapus garis kosong

Halfwarr
sumber
Sayangnya ini tidak mempertimbangkan pilihan Anda, itu akan menghapus semua baris kosong dalam file bahkan jika Anda hanya memilih beberapa dari mereka.
Fabio berkata Reinstate Monica
Jika ini adalah operasi satu kali, Anda dapat mengekstrak baris yang dipilih ke notepad ++ baru dan melakukan operasi itu di sana. Prosedur salin-tempel selama 5 detik. Pemecahan masalah lain yang tidak dapat diselesaikan pada saat itu adalah pemborosan menurut pendapat saya. Tetapi jika Anda melakukannya setiap hari 100 kali ...
kredo
Saya menggunakan ini (bahkan menetapkan pintasan saya), tetapi jauh lebih lambat daripada opsi di atas, jadi gunakan dengan cerdas ...
Betlista
122

Ada plugin yang menambahkan menu yang berjudul TextFX. Menu ini, yang menampung berbagai opsi pengeditan teks cepat yang memusingkan, memberi seseorang kemampuan untuk melakukan perubahan koding cepat. Di menu ini, Anda dapat menemukan pilihan seperti Drop Quotes, Delete Blank Lines, serta Unwrap dan Rewrap Text

Lakukan hal berikut:

TextFX > TextFX Edit > Delete Blank Lines
TextFX > TextFX Edit > Delete Surplus Blank Lines
kolufild
sumber
7
Tidak yakin kapan, tetapi tampaknya plugin ini diinstal secara default sekarang. Sedikit di luar topik, tetapi salah satu fitur lain yang sangat berguna, di bawah TextFX > TextFX Tools, adalah penyortiran garis, secara opsional menghapus duplikat. Cara yang sangat praktis untuk melakukan Unix sort -upada kotak Windows tanpa cygwin atau unxutils atau yang serupa.
Cam Jackson
3
Berikut tautan ke Plugin TextFx. Saya merasa sangat berguna. Gunakan: Settings > Import > plugin...dan temukan file dll untuk menginstalnya. Ini menjadi item menu olehPlugins
Nicholas Pickering
1
apakah ini akan berfungsi pada semua dokumen terbuka, atau satu dokumen sekaligus?
Terlantar
76
  1. notepad ++
  2. Ctrl-H
  3. Pilih Ekspresi Reguler
  4. Masukkan ^[ \t]*$\r?\nke dalam menemukan apa, biarkan ganti kosong. Ini akan cocok dengan semua baris yang dimulai dengan spasi putih dan diakhiri dengan carriage return (dalam hal ini windows crlf)
  5. Klik tombol Find Next untuk melihat sendiri bagaimana itu hanya cocok dengan baris kosong.
SleepyBoBos
sumber
1
Saya harus menggunakan metode ini daripada beberapa metode lain untuk membuatnya bekerja dengan mudah di makro. Terima kasih.
Mafu Josh
5
penggantian yang lebih pendek dan lebih pendek juga diperlukan karena beberapa baris kosong akan diganti sekaligus: ^ \ s * $ \ r? \ n
njank
31
  1. Tekan ctrl + h (Pintasan untuk ganti).
  2. Di zona Temukan apa , ketikkan ^\R(hanya untuk baris kosong) atau ^\h*\R(hanya untuk baris kosong dengan kosong).
  3. Biarkan Ganti dengan zona kosong .
  4. Periksa opsi Bungkus .
  5. Pilih mode pencarian ekspresi reguler .
  6. Klik pada tombol Replace All .

masukkan deskripsi gambar di sini

Alex.K.
sumber
1
Ini berfungsi untuk saya tanpa masalah atau pengaturan tambahan untuk diubah. Terima kasih!
Bonez024
19

Anda dapat mengikuti teknik seperti yang ditunjukkan pada tangkapan layar berikut:

  • Menemukan apa: ^\r\n
  • Ubah dengan: keep this empty
  • Mode Pencarian: Regular expression
  • Bungkus: dipilih

masukkan deskripsi gambar di sini

CATATAN: untuk file * nix hanya ditemukan oleh\n

Saikat
sumber
17

Ini bekerja untuk saya:

  1. Tekan ctrl + h(Pintasan untuk ganti)
  2. Tulis salah satu regex berikut dalam find whatkotak. [\n\r]+$atau^[\n\r]+
  3. Biarkan Replace withkotak kosong
  4. Dalam Search Mode, pilihRegex
  5. Klik Replace All

    Selesai!
Kamal Nayan
sumber
Ini adalah satu-satunya solusi yang tidak mengacaukan file .csv besar saya. Terima kasih!
Berlaku
1
ditambah satu karena saya akhirnya tahu jalan pintas untuk mengganti :-D
Betlista
14

Di notepad ++, tekan CTRL + H, dalam mode pencarian klik pada tombol radio "Extended (\ n, \ r, \ t ...)" lalu ketik kotak "Temukan apa": \ r \ n (kependekan dari CR LF ) dan biarkan kotak "Ganti dengan" kosong ..

Akhirnya tekan ganti semua

Bassem
sumber
sebenarnya, saya mencobanya, lihat klarifikasi saya dalam jawaban saya. Anda tertarik pada sesuatu!
Brad
3
Ini mengasumsikan akhir baris adalah Windows (CRLF), jika file Anda disimpan dengan pencarian akhir baris Unix hanya untuk \n.
BoltClock
@Brad: Saya menulis di antara () "kependekan dari CR LF", tidak ingin codetrek berpikir \ n adalah CR, maka dari itu edit.
Bassem
Jawaban salah, letakkan semua baris dalam satu baris.
m0skit0
12

Yah saya tidak yakin tentang regex atau situasi Anda ..

Bagaimana dengan CTRL + A, Pilih menu TextFX -> Edit TextFX -> Hapus Baris Kosong dan biola semua baris kosong hilang.

Catatan samping - jika garis kosong yaitu tidak mengandung spasi, ini akan berfungsi

Ahmad
sumber
12

Anda dapat mencari regex berikut: ^(?:[\t ]*(?:\r?\n|\r))+dan menggantinya dengan bidang kosong

Ya Basha
sumber
11

Ctrl + H.

temukan - ganti dengan - \ r.

mahesh adepu
sumber
Ini bekerja untuk saya, menghapus baris tambahan, dalam arti menemukan ganti ganda dengan tunggal. Terima kasih!!
genpet
Ini bekerja dengan baik, namun saya menemukan bahwa saya perlu menjalankannya beberapa kali dalam dokumen saya sebelum semua instance hilang. Saya tidak yakin mengapa.
Hawkwing
7

Ini jelas tidak berfungsi jika baris kosong berisi tab atau kosong. Banyak halaman web (mis. Http://www.guardian.co.uk/ ) berisi garis putih ini, sebagai akibat dari editor HTML yang salah.

Hapus spasi putih menggunakan ekspresi reguler sebagai berikut:

ubah pola: [\ t] + $ menjadi tidak ada.

di mana [\ t] cocok dengan tab atau spasi. '+' cocok dengan satu kejadian atau lebih, dan '$' menandai akhir baris.

Kemudian gunakan notepad ++ / textFX untuk menghapus baris kosong tunggal atau ekstra. Pastikan bahwa baris kosong ini tidak signifikan dalam konteks yang diberikan.

Poisson
sumber
5

masukkan deskripsi gambar di sini

Kadang-kadang dll tidak berfungsi, di sini untuk mencari tahu, apa yang seharusnya menjadi ekspresi reguler Anda.

Keuntungan dari trik ini: Jika Anda ingin mengganti dalam beberapa file sekaligus, Anda harus memerlukan metode ini. Di atas tidak akan bekerja ...

Wasim A.
sumber
5

1) Ctrl + H(Atau Search 🠆 Replace..) untuk membuka jendela Ganti.

2) Pilih 'Search Mode' 'Ekspresi reguler'

3) Dalam 'Temukan Yang tipe ^(\s*)(.*)(\s*)$& di 'Ganti Dengan' jenis\2

  • ^ - Cocok dengan awal karakter garis
  • (\s*) - Cocok dengan karakter ruang kosong
  • (.*) - Cocok dengan karakter apa pun
  • (\s*) - Cocok dengan karakter spasi kosong
  • $ - Cocok dengan karakter karakter akhir
  • \2 - Menunjukkan pertanda pencocokan braket ke-2

masukkan deskripsi gambar di sini Rujuk https://www.rexegg.com/regex-quickstart.html untuk informasi lebih lanjut tentang regex.

Praboda
sumber
4
  1. Edit >> Operasi Kosong >> Potong Leading and Trailing Spaces (untuk menghapus tab dan spasi hitam di baris kosong)
  2. Ctrl+ Huntuk mendapatkan jendela ganti dan ganti pola: ^\r\ndengan tidak ada (pilih ekspresi reguler)

Catatan: langkah 1 akan menghapus niat kode Anda dilakukan melalui tab dan spasi kosong

Adeeb
sumber
4

CTRL + A, Pilih menu TextFX -> Edit TextFX -> Hapus Baris Kosong seperti yang disarankan di atas berfungsi.

Tetapi jika garis mengandung beberapa ruang, maka pindahkan kursor ke garis itu dan lakukan CTRL + H. "Cari apa:" detik akan menunjukkan ruang kosong dan di bagian "Ganti dengan", biarkan kosong. Sekarang semua spasi dihapus dan sekarang coba CTRL + A, Pilih menu TextFX -> Edit TextFX -> Hapus Baris Kosong


sumber
4

/n/rmengasumsikan tipe tertentu dari jeda baris. Untuk menargetkan setiap baris kosong, Anda juga dapat menggunakan:

^$

Ini mengatakan - garis apa pun yang dimulai dan kemudian berakhir dengan tidak ada di antara. Ini lebih dari menangkap semua. Ganti dengan string kosong yang sama.

AshBrad
sumber
3

Saya tidak melihat jawaban gabungan sebagai jawaban, jadi cari ^ \ s + $ dan ganti dengan {nothing}

^\s+$ means
  ^ start of line
  \s+ Matches minimum one whitespace character (spaces, tabs, line breaks)
  $ until end of line
pengguna2056154
sumber
jika Anda ingin beberapa baris Anda dapat mencoba: ^\s+^(\S)dan ganti dengan \1.
jiggunjer
2

Sangat sederhana

ctrl + H

Temukan: \ r \ n \ r \ n

Replcate dengan: \ r \ n

Lihat Snap

Pragnesh Bhalodiya
sumber
1

Alternatif mudah untuk menghilangkan ruang putih dari garis kosong:

  1. TextFX> TextFX Edit> Trim Trailing Spaces

Ini akan menghapus semua spasi tambahan, termasuk spasi tambahan pada baris kosong. Pastikan, tidak ada spasi tambahan yang signifikan.

poisson
sumber
0

Beberapa dari ekspresi di atas dan ekspresi yang diperluas tidak berfungsi untuk saya, tetapi ekspresi reguler "$ \ n $" berhasil.

Chris
sumber
0

ini bekerja untuk saya:

SEARCH:^\r  
REPLACE:            (empty)
Rafael Marques
sumber
1
Ini tidak akan berfungsi untuk linux eol \ndan windows eol\r\n
Toto