Làm cách nào để xóa mọi dòng lẻ trong Notepad ++?


29

Tôi đang cố gắng chỉnh sửa một tài liệu gồm 20000 dòng. Tôi phải loại bỏ mọi dòng lẻ, ví dụ:

Apple
Monkey
Orange
Lion
fruit
animal

Làm cách nào tôi có thể xóa từng ký tự của dòng lẻ trong tài liệu?


bạn có ý nghĩa gì bởi dòng lẻ? Bạn có nghĩa là muốn loại bỏ từ lẻ (không mong muốn) khỏi toàn bộ tài liệu?
antzshrek

4
Mỗi dòng được đánh số lẻ như 1,3,5,7,9,11,13,15 .... cứ như vậy.
Nithin N

1
Hãy thử thay thế bằng dòng mới (regrec): [\ n. + \ N]
Art Gertner

@ArtGertner tôi đã thử với biểu thức nó không hoạt động.
Nithin N

1
Tôi ghi lại một macro ngu ngốc: mũi tên xuống, mũi tên dịch chuyển xuống, del.
chingNotCHing

Câu trả lời:


23

Bạn có thể làm điều đó với tìm và thay thế:

  • Mở hộp thoại thay thế ( Ctrl+ H)
  • Chọn "Biểu thức chính quy"
  • Tìm cái gì: .+\r\n(.+(\r\n|$))
  • Thay bằng:
    $1
  • Nhấn "Thay thế tất cả"

Ghi chú:

  • Tùy thuộc vào hệ điều hành của bạn, bạn cần sử dụng \r(máy Mac cũ), \n(Unix, OS X) hoặc \r\n(Windows) để khớp với dòng cuối hoặc chỉ sử dụng \Rđể hoạt động ở mọi nơi (cảm ơn vì @Aurel Bílý)
  • \n|$ là cần thiết để có kết quả chính xác ngay cả ở phần cuối của tệp
  • Theo mặc định, Notepad ++ thay thế từ vị trí con trỏ thực tế đến cuối tệp. Đảm bảo đặt con trỏ của bạn vào đầu tệp.
    • (Bạn cũng có thể kiểm tra "quấn quanh", nhưng trong trường hợp đó, đầu tiên nó sẽ xóa dòng con trỏ của bạn, thay vì thực sự tìm kiếm một dòng lẻ.)

Nhập mô tả hình ảnh ở đây


Nó gần như hoạt động, nhưng nó không chỉnh sửa tập hợp các dòng được đánh số lẻ đầu tiên, nói từ 1 đến 15.
Nithin N

Thay đổi ảnh chụp màn hình với độ xuyên sáng hơn của cửa sổ thay thế đó.
Biswapriyo

11
Xin lưu ý rằng \rkết thúc dòng là rất hiếm - nó thực sự được sử dụng trong Mac OS, nhưng các phiên bản tiền OS-X cổ điển. Trong OS X trở đi, các kết thúc dòng \ngiống như bất kỳ Unix lành mạnh nào. Cũng \Rtốt hơn để phù hợp với bất kỳ kết thúc dòng.
Aurel Bílý

@ AurelBílý Điều đó đúng, tuy nhiên Notepad ++ chỉ chạy trên windows, vì vậy tính di động ở đây không phải là vấn đề.
Cướp

18
  • Ctrl+H
  • Tìm cái gì: .+\R(.+)
  • Thay bằng: $1
  • Replace all

Giải trình:

.+      : 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
  • Kiểm tra biểu thức chính quy
  • KHÔNG KIỂM TRA . matches newline

Kết quả cho ví dụ đã cho:

Monkey
Lion
animal

@NithinN: Lưu ý rằng câu trả lời được chấp nhận không hoạt động với các tệp linux (ví dụ: ngắt dòng \n)
Toto

7
  1. Mở tệp và đặt con trỏ văn bản của bạn ở đầu dòng đầu tiên.
  2. Menu → MacroBắt đầu ghi
  3. Nhấn Endphím trên bàn phím
  4. Shift+ Home, sau đóbackspace
  5. Down
  6. Backspace
  7. Down
  8. Menu → MacroDừng ghi âm
  9. Menu → MacroChạy Macro nhiều lần → Đánh dấu Chạy cho đến khi kết thúc tập tin
  10. Nhấp chuột Run

Về cơ bản thực hiện hành động một lần để loại bỏ một dòng lẻ, sau đó nhận chương trình lặp lại hành động đến cuối tệp. Điều này có thể được sử dụng để giải quyết nhiều vấn đề!


1

Tôi vừa kiểm tra trên PC của đồng nghiệp, người thực sự sử dụng Notepad ++. Thử đi:

Nhập mô tả hình ảnh ở đây


Dường như với tôi điều này để loại bỏ các dòng chẵn (2,4,6 ...), không phải các dòng lẻ.
Máté Juhász

1
Đúng rồi. Tuy nhiên, việc xóa các dòng chẵn dễ dàng hơn và vấn đề có thể được giải quyết bằng cách thêm một dòng trống ở đầu tệp
Art Gertner

@ArtGertner nên được thay thế \ r \ n. + \ R \ n bằng \ r \ n
chingNotCHing

@chingNotCHing, một trong những tốt! Tôi đã cập nhật câu trả lời của mình
Art Gertner

@ArtGertner Như bạn đã chỉ ra, nó chỉ hoạt động cho các dòng chẵn. Nhưng đối với tập dữ liệu lớn, nó không được chỉnh sửa cho tập dữ liệu đầu tiên nói từ dòng 1-15.
Nithin N
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.