Bagaimana cara menghapus setiap garis ganjil di Notepad ++?

29

Saya mencoba mengedit dokumen 20.000 baris. Saya harus menghapus setiap baris ganjil, katakan misalnya:

Apple
Monkey
Orange
Lion
fruit
animal

Bagaimana saya bisa menghapus setiap karakter garis ganjil dalam dokumen?

Nithin N
sumber
apa yang kamu maksud dengan garis ganjil? Apakah Anda ingin menghapus kata ganjil (tidak diinginkan) dari seluruh dokumen?
antzshrek
4
Setiap baris bernomor ganjil seperti 1,3,5,7,9,11,13,15 .... seterusnya.
Nithin N
1
Coba ganti dengan baris baru (regexp): [\ n. + \ N]
Art Gertner
@ ArtGertner saya mencoba dengan ekspresi tidak berfungsi.
Nithin N
1
Saya akan merekam makro bodoh: panah ke bawah, panah ke bawah, del.
chingNotCHing

Jawaban:

23

Anda dapat melakukannya dengan mencari dan mengganti:

  • Buka dialog ganti ( Ctrl+ H)
  • Pilih "Ekspresi reguler"
  • Menemukan apa: .+\r\n(.+(\r\n|$))
  • Ubah dengan:
    $1
  • Tekan "Ganti Semua"

Catatan:

  • Bergantung pada OS Anda, Anda perlu menggunakan \r(Mac lama), \n(Unix, OS X) atau \r\n(Windows) untuk mencocokkan end of line, atau hanya menggunakan \Ryang seharusnya bekerja di mana saja (terima kasih atas @Aurel Bílý)
  • \n|$ diperlukan untuk mendapatkan hasil yang benar bahkan di akhir file
  • Secara default, Notepad ++ menggantikan dari posisi kursor aktual ke akhir file. Pastikan untuk meletakkan kursor Anda ke awal file.
    • (Anda juga bisa mencentang "membungkus", tetapi dalam hal ini pertama-tama akan menghapus garis kursor Anda, bukannya benar-benar mencari garis aneh.)

Masukkan deskripsi gambar di sini

Máté Juhász
sumber
Ini hampir berfungsi, tetapi tidak mengedit set pertama dari baris bernomor ganjil, katakan dari 1 sampai 15.
Nithin N
Ubah tangkapan layar dengan lebih banyak transperasi dari jendela pengganti itu.
Biswapriyo
11
Harap dicatat bahwa \rsebagai akhiran baris sangat jarang - memang digunakan di Mac OS, tetapi versi klasik, pra-OS-X. Dalam OS X dan seterusnya, akhir baris \n, seperti Unix yang waras. Juga \Rlebih baik untuk mencocokkan akhir baris.
Aurel Bílý
@ AurelBílý Itu benar, namun Notepad ++ hanya berjalan di windows, jadi portabilitas di sini tidak banyak masalah.
Rob
18
  • Ctrl+H
  • Menemukan apa: .+\R(.+)
  • Ubah dengan: $1
  • Replace all

Penjelasan:

.+      : 1 or more any character but newline
\R      : any kind of linebreak (ie. \r, \n, \r\n)
(       : start group 1
  .+    : 1 or more any character but newline
)       : end group 1
  • Periksa ekspresi reguler
  • JANGAN PERIKSA . matches newline

Hasil untuk contoh yang diberikan:

Monkey
Lion
animal
Toto
sumber
@NithinN: Perlu diketahui bahwa jawaban yang diterima tidak bekerja dengan file linux (mis. Linebreak \n)
Toto
7
  1. Buka file dan letakkan kursor teks Anda di awal baris pertama.
  2. Menu → MakroMulai Rekaman
  3. Tekan Endtombol pada keyboard
  4. Shift+ kalau Homebegitubackspace
  5. Down
  6. Backspace
  7. Down
  8. Menu → MakroStop Recording
  9. Menu → MakroJalankan Makro Beberapa Kali → Centang Jalankan hingga akhir file
  10. Klik Run

Pada dasarnya melakukan tindakan sekali untuk menghapus garis ganjil, kemudian dapatkan program untuk mengulangi tindakan ke akhir file. Ini dapat digunakan untuk menyelesaikan banyak masalah!

UserF40
sumber
1

Saya baru saja memeriksa PC rekan saya yang benar-benar menggunakan Notepad ++. Coba ini:

Masukkan deskripsi gambar di sini

Seni Gertner
sumber
Menurut saya ini menghapus garis genap (2,4,6 ...), bukan yang aneh.
Máté Juhász
1
Itu betul. Namun menghapus garis genap lebih mudah, dan masalahnya dapat diatasi dengan menambahkan baris kosong di awal file
Art Gertner
@ArtGertner harus \ r \ n. + \ R \ n diganti dengan \ r \ n
chingNotCHing
@chingNotCHing, bagus! Saya telah memperbarui jawaban saya
Seni Gertner
@ ArtGertner Seperti yang Anda tunjukkan itu hanya berfungsi untuk garis genap. Tetapi untuk set data yang besar itu tidak mengedit untuk set data pertama mengatakan dari garis 1-15.
Nithin N