Bagaimana saya bisa menghapus semuanya setelah kolom pertama di Notepad ++?

40

Saya mencoba untuk menyingkirkan semuanya setelah kolom di Notepad ++. Mode kolom bukan opsi. Apa itu mungkin?

Apa yang saya punya:

70.97.110.40    159 ms          [n/a]                   21              
70.97.117.177   134 ms          [n/a]                   21              
70.97.120.10    75 ms           [n/a]                   21              
70.97.122.105   87 ms           www.portless.net        21              
70.97.122.106   89 ms           www.popovetsky.org      21              
70.97.122.107   95 ms           www.psmythe.net         21              
70.97.122.104   98 ms           wasabi.prostructure.com 21              
70.97.122.108   89 ms           crm.prostructure.com    21              
70.97.122.109   87 ms           internal.prostructure.com21 

Apa yang saya inginkan:

70.97.110.40
70.97.117.177
70.97.120.10
70.97.122.105
70.97.122.106
70.97.122.107
70.97.122.104
70.97.122.108
70.97.122.109
Bob J
sumber
2
Apakah kolom-kolomnya terpisah?
Excellll
3
Satu pertanyaan lagi: apakah data yang ingin Anda simpan pernah memasukkan spasi?
Excellll
1
tidak, saya hanya perlu ips
Bob J
20
Mengapa Anda ingin melakukannya di notepad ++? Mengapa mode kolom bukan opsi?
Kamil
1
Anda bisa menggunakan mode kolom untuk menghapus kolom kedua ke EOL, dan kemudian menggunakan Trim Trailing dan simpan untuk menghilangkan spasi.
Casey Kuball

Jawaban:

60

Jika data di kolom pertama tidak pernah berisi spasi, Anda bisa menggunakan pencarian dan ganti ekspresi reguler untuk mendapatkan yang Anda inginkan.

Dalam mode ekspresi reguler, cari:

^([^ ]*).*

Dan ganti dengan

\1

Apa yang dilakukan:

^menunjukkan bahwa setiap kecocokan harus dimulai pada awal baris.
([^ ]*)adalah setiap ekspresi yang tidak mengandung spasi. Pertandingan serakah, jadi ini akan cocok dengan semuanya hingga ruang pertama (atau akhir baris, mana yang lebih dulu).
.*adalah segalanya di telepon.

\1mengacu pada bagian pertandingan di dalam tanda kurung. Yaitu, seluruh baris diganti dengan hanya sedikit dari kolom pertama.

Excellll
sumber
5
Senang mengetahui bahwa notepad ++ mendukung ekspresi reguler dalam pencarian-ganti!
Kamil
1
Regex akan melakukan pekerjaan untuk Anda selama data tidak pernah berisi spasi. Simpler akan menjadi perintah 'cut' UNIX tetapi melakukan perintah UNIX di bawah windows adalah masalah 'nother keseluruhan'. cut dibuat untuk ini dan memproses file besar dengan cepat, dengan pembatas kolom yang ditentukan atau berdasarkan jumlah karakter.
Karl
31
Ini dapat dilakukan jauh lebih sederhana: ganti ". *" (Perhatikan spasi di depan) dengan "" (yaitu tidak ada) untuk menghapus semuanya setelah dan termasuk spasi pertama.
Fraxtil
2
@ Frxtil Terima kasih. Anda harus memposting itu sebagai jawaban. Anda akan mendapatkan suara positif dari saya.
Excellll
@Excellll baik-baik saja, sudah selesai.
Fraxtil
99

Berikut adalah ekspresi reguler yang lebih sederhana yang dapat Anda gunakan untuk mencapai efek yang sama. Menggantikan

 .*

(perhatikan ruang utama)

tanpa apa-apa. Ini akan menghapus semuanya setelah dan termasuk ruang pertama. Ini akan berfungsi selama alamat IP Anda tidak pernah diawali dengan spasi kosong (seperti halnya dalam contoh Anda).

Fraxtil
sumber
8
Man, regex adalah sihir murni. Saya tidak berpikir saya akan pernah
mengguncangnya
14
Pastikan bahwa bendera memiliki. baris baru yang cocok tidak aktif.
Taemyr
3
Jika berpotensi tab bukan spasi, Anda dapat menggunakan[ \t].*
Cornstalks
4
@Cornstalks \s.*lebih pendek. Mungkin bahkan menggunakan \s+.*, untuk mencocokkan jumlah spasi kosong yang sewenang-wenang, sekarang kami membuat kode defensif .
Anko
1
@ jpmc26 selama Anda tidak mengatakan "regex" dan "sederhana" dalam satu kalimat :)
Torben Gundtofte-Bruun
39

Jika Anda menggunakan Windows dan jika Anda tidak keberatan dengan spasi tambahan (Anda dapat menemukan / menggantinya sesudahnya), gunakan fitur Block Select :

  1. Tekan dan tahan Alttombol
  2. Menggunakan mouse, pilih bagian yang akan dihapus (seluruh blok teks)
  3. Lepaskan Altkuncinya
  4. Hapus blok teks itu
  5. Ulangi seperlunya
Reed Shilts
sumber
Apakah itu yang seharusnya menjadi kunci "-" minus?
Dracs
Maaf - Saya menggunakan tanda kurung LT dan GT di sekitar tombol 'alt'. Diperbaiki sekarang
Reed Shilts
10
Anda dapat mengubahnya menjadi <kdb> Alt </kbd> dan itu akan memformatnya sebagai kunci.
Dracs
Saya telah menggunakan Notepad selamanya .... dan tidak pernah tahu fitur ini ada! 1 Milyar +1 !!!!!
1
OP mengatakan: "Mode kolom bukan pilihan"
Peter Mortensen
11

Sebuah ekspresi reguler lebih cepat, tetapi Anda dapat melakukan beberapa hal yang benar-benar rumit dengan macro jika itu adalah tugas yang lebih rumit.

Anda dapat merekam makro:

  1. Kursor di baris 1
  2. Tekan Mulai merekam
  3. Tekan tombol home
  4. Tahan Ctrlsambil menekan tombol Right arrow(tujuh kali)
  5. Tahan Shiftsambil menekan tombolEnd
  6. tekan tombol Delete
  7. tekan tombol Down arrow
  8. Memukul Stop recording

Kemudian putar kembali:

  1. Tekan "Jalankan makro beberapa kali"
  2. Ketik baris dokumen minus 1, karena baris pertama selesai.
penipu
sumber
9

Tempatkan kursor setelah 70.97.110.40.

Tempatkan kursor

Tekan Alt, dan seret kursor ke kanan dan ke bawah untuk memilih bagian yang tidak diinginkan.

Memilih

Tekan Backspaceatau Delete.

Menghapus

Keshava GN
sumber
1
Selama ini menggunakan Notepad ++ dan saya tidak pernah tahu ia memiliki "Block Select Mode" seperti TextPad.
Kev
@Kev: ini bekerja dengan cara yang sama di Visual Studio.
Peter Mortensen
1
OP mengatakan: "Mode kolom bukan opsi"
Peter Mortensen
@PeterMortensen - re: VS - hell, sudah menggunakannya sejak tahun 2002 dan bahkan tidak tahu!
Kev
8

Berikut adalah beberapa metode alternatif untuk jawaban yang diberikan.

Jika data Anda fixed width, Anda juga dapat menggunakan ekspresi reguler berikut dalam pencarian:

Menemukan apa: ^(.{16}).*$

Ubah dengan: \1

Sangat bagus jika data yang ingin Anda simpan tidak mengandung spasi, seperti yang disebutkan seseorang. Selain itu, sekali lagi untuk data dengan lebar tetap, Anda dapat menggunakan Column Mode Editing. Ini adalah fitur kecil yang rapi yang memungkinkan Anda untuk mengedit beberapa baris data di lokasi kolom yang sama. Lihat Pengeditan Mode Kolom .

Itu membuat menyebutkan tombol panah, tetapi Anda juga dapat menggunakan Page Up/Downuntuk metode yang lebih cepat, serta Enddan Homekunci. Mouse juga berfungsi. Tetapi Anda bisa menggunakan ini untuk metode ad hoc menghapus data setelah titik tertentu, terutama jika itu hanya beberapa baris. Ini juga bagus untuk menyalin data, tetapi cara menempelnya agak aneh, jadi Anda ingin terbiasa dulu.

Phillip
sumber
1
Lebih baik daripada memilih dan menggantinya dengan dirinya sendiri adalah dengan menggunakan tampilan di belakang seperti: (? <= ^. {13}). * Dan menggantinya dengan apa pun. Ini akan memilih apa saja setelah 13 karakter pertama.
Chris Murray
4

Mirip dengan enthdegree:

  1. Tempatkan kursor di kolom 16
  2. Shift+ Alt+Page Down
  3. Shift+ Alt+End
  4. Delete

Jika ada baris kosong di akhir file, cukup tekan Up Arrowsebelum ke # 3.

Itu tidak sempurna, tetapi berguna.

The Cog
sumber
4
  1. Tekan ALTsaat menggunakan mouse sebagai laso.
  2. Pilih semua yang ingin Anda hapus
  3. tekan DELETE
actXc
sumber
Dengan asumsi kolom baris pertama dengan baik, seperti alamat IP, maka ini adalah cara tercepat.
bgStack15
OP mengatakan: "Mode kolom bukan pilihan"
Peter Mortensen
3

Berikut ini cara visual:

  • Letakkan kursor di akhir alamat IP.
  • Alt+ Shift+Pg Down
  • Alt+ Shift+Right
  • Delete

Ini bukan 'berbasis kolom.' Ini hanya berfungsi karena alamat IP Anda semua berbaris.

enthdegree
sumber
1
Apa yang Anda maksud dengan "Ini bukan 'berbasis kolom.'"? Alt + Shift + Arrow beralih ke "mode kolom".
MrWhite
Itu tidak menghormati tab-delineation sebagai kolom. Ini memecah mereka menjadi spasi sehingga setiap baris dalam seleksi memiliki # karakter yang sama di luar tepi titik awal pilihan.
enthdegree
1

Dalam mode ekspresi reguler, cari:

\ t. *

Dan ganti dengan

Tidak ada

Karthik Vuppala
sumber
Bisakah Anda menambahkan satu atau dua kalimat untuk menjelaskan apa artinya ini? Terima kasih.
fixer1234
1
Stack Exchange mengonversi tab menjadi spasi saat menampilkan, tetapi bahkan dalam mode edit, contohnya tidak menampilkan tab apa pun.
Arjan
0

Hapus semuanya setelah kolom pertama di Notepad ++:

  1. Pilih kolom ke-2: Alt+ Seret
  2. Untuk memilih kolom lainnya: cukup tekan Right Arrow
Ipsita
sumber