Xóa các dòng trống trong Notepad ++


384

Làm cách nào để thay thế các dòng trống trong Notepad ++? Tôi đã thử tìm và thay thế bằng các dòng trống trong tìm kiếm, và không có gì thay thế, nhưng nó không hoạt động; nó có lẽ cần regex.

Câu trả lời:


395

Bạn cần một cái gì đó giống như một biểu thức thông thường.

Bạn phải ở trong Extendedchế độ

Nếu bạn muốn tất cả các dòng kết thúc trên một dòng sử dụng \r\n. Nếu bạn chỉ muốn xóa các dòng trống , hãy sử dụng \n\rnhư @Link đề xuất ban đầu.

Thay thế một trong hai biểu thức bằng không có gì.


21
Trước tiên nên chọn 'Extended` trong chế độ tìm kiếm.
q0987

14
Để có được các dòng của bạn không được nối với nhau, bạn phải tìm kiếm \r\n\r\nvà thay thế bằng \r\n.
Robert Kaucher

1
Xem bình luận của @ BoltClock bên dưới. Ngoài ra, nếu tệp của bạn được lưu với các kết thúc dòng Unix, bạn có thể chuyển đổi nó thành các kết thúc dòng Windows trong Chỉnh sửa> Chuyển đổi EOL> Định dạng Windows trước khi thực hiện tìm và thay thế.
Big McLUNDHuge

9
Nếu bạn muốn xóa các dòng chỉ có dấu cách và tab hoặc không có gì, hãy thử sử dụng regex thay thế để khớp \r\n\W*\r\nvà thay thế bằng\r\n
Myster

2
@ ST3 hmm tôi đã nghĩ gì, Cái này tốt hơn nhiều: (\r\n|\r|\n)(\s*(\r\n|\r|\n))+và thay thế bằng \r\nxem nó hoạt động ở đây: regex101.com/r/qD9dB1/1
Myster

567

Hiện tại đã có một cách tích hợp để thực hiện việc này kể từ phiên bản 6.5.2

Edit -> Line Operations -> Remove Empty Lines hoặc là Remove Empty Lines (Containing Blank characters)

Ảnh chụp màn hình xóa các dòng trống


Thật không may, điều này không xem xét lựa chọn của bạn, nó sẽ xóa tất cả các dòng trống trong tệp ngay cả khi bạn chỉ chọn một số trong số chúng.
Fabio nói Phục hồi Monica

Nếu đây là hoạt động một lần, bạn có thể trích xuất các dòng đã chọn vào tab notepad ++ mới và thực hiện thao tác đó tại đó. Thủ tục sao chép-dán trong 5 giây. Bất kỳ cách giải quyết nào khác không thể hoàn thành trong thời gian đó là một sự lãng phí theo quan điểm của tôi. Nhưng nếu bạn đang làm điều đó mỗi ngày 100 lần ...
tín ngưỡng

Tôi đã sử dụng cái này (thậm chí đã gán phím tắt của tôi), nhưng nó chậm hơn rất nhiều so với tùy chọn ở trên, vì vậy hãy sử dụng một cách thông minh ...
Betlista

122

Có một plugin có thêm một menu có tên TextFX. Menu này, chứa một loạt các tùy chọn chỉnh sửa văn bản nhanh chóng, mang đến cho một người khả năng thực hiện các thay đổi mã hóa nhanh chóng. Trong menu này, bạn có thể tìm thấy các lựa chọn như Thả dấu ngoặc kép, Xóa dòng trống cũng như Unwrap và Rewrap Text

Làm như sau:

TextFX > TextFX Edit > Delete Blank Lines
TextFX > TextFX Edit > Delete Surplus Blank Lines

7
Không chắc chắn khi nào, nhưng có vẻ như plugin này được cài đặt theo mặc định ngay bây giờ. Hơi lạc đề, nhưng một trong những tính năng cực kỳ hữu ích khác, bên dưới TextFX > TextFX Tools, là sắp xếp dòng, tùy ý loại bỏ trùng lặp. Cách rất thuận tiện để thực hiện Unix sort -utrên hộp Windows mà không cần cygwin hoặc unxutils hoặc tương tự.
Cam Jackson

3
Đây là một liên kết đến Plugin TextFx. Tôi tìm thấy nó rất hữu ích. Sử dụng: Settings > Import > plugin...và tìm tập tin dll để cài đặt nó. Nó trở thành một mục menu củaPlugins
Nicholas Pickering

1
điều này sẽ làm việc trên tất cả các tài liệu mở, hoặc một tài liệu tại một thời điểm?
Vô chủ

76
  1. notepad ++
  2. Ctrl-H
  3. Chọn biểu thức chính quy
  4. Nhập ^[ \t]*$\r?\nvào tìm cái gì, để trống thay thế. Điều này sẽ khớp với tất cả các dòng bắt đầu bằng khoảng trắng và kết thúc bằng trả về vận chuyển (trong trường hợp này là cửa sổ crlf)
  5. Nhấp vào nút Tìm tiếp theo để tự mình xem cách nó chỉ khớp với các dòng trống.

1
Tôi đã phải sử dụng phương pháp này thay vì một số phương pháp khác để làm cho nó dễ dàng hoạt động trong một macro. Cảm ơn bạn.
Mafu Josh

5
thậm chí ngắn hơn và cũng cần thay thế ít hơn vì nhiều dòng trống sẽ được thay thế cùng một lúc: ^ \ s * $ \ r? \ n
njank 16/12/17

30
  1. Nhấn ctrl + h (Phím tắt để thay thế).
  2. Trong Tìm khu vực, hãy nhập ^\R(cho các dòng trống chính xác) hoặc ^\h*\R(chỉ cho các dòng trống có khoảng trống).
  3. Để trống Thay thế với vùng trống .
  4. Kiểm tra tùy chọn Bọc xung quanh .
  5. Chọn chế độ tìm kiếm biểu thức chính quy .
  6. Nhấp vào nút Thay thế Tất cả .

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


1
Điều này làm việc cho tôi mà không có bất kỳ vấn đề hoặc cài đặt bổ sung để thay đổi. Cảm ơn!
Bonez024

19

Bạn có thể làm theo kỹ thuật như trong ảnh chụp màn hình sau:

  • Tìm cái gì: ^\r\n
  • Thay thế bằng: keep this empty
  • Chế độ tìm kiếm: Regular expression
  • Quấn quanh: đã chọn

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

LƯU Ý: cho các tệp * nix chỉ cần tìm bởi\n


17

Điều này làm việc cho tôi:

  1. Nhấn ctrl + h(Phím tắt để thay thế)
  2. Viết một trong các regex sau vào find whathộp. [\n\r]+$hoặc là^[\n\r]+
  3. Để Replace withtrống ô
  4. Vào Search Mode, chọnRegex
  5. Nhấp vào Replace All

    Xong!

Đây là giải pháp duy nhất không làm hỏng các tệp .csv khổng lồ của tôi. Cảm ơn!
veuncent

1
cộng với một vì cuối cùng tôi cũng biết lối tắt để thay thế :-D
Betlista

14

Trong notepad ++, nhấn CTRL + H, trong chế độ tìm kiếm, nhấp vào nút radio "Mở rộng (\ n, \ r, \ t ...)" sau đó nhập vào hộp "Tìm gì": \ r \ n (viết tắt của CR LF ) và để trống ô "Thay thế bằng" ..

Cuối cùng nhấn thay thế tất cả


Thật ra, tôi đã thử nó, xem sự làm rõ của tôi trong câu trả lời của tôi. Bạn đã vào một cái gì đó!
Brad

3
Điều này giả sử các kết thúc dòng là Windows (CRLF), nếu tệp của bạn được lưu với kết thúc tìm kiếm dòng Unix chỉ cho \n.
BoltClock

@Brad: Tôi đã viết ở giữa () "viết tắt của CR LF", không muốn codetrek nghĩ \ n là CR, do đó chỉnh sửa.
Bassem

Trả lời sai, đặt tất cả các dòng trong một dòng.
m0skit0

12

Chà, tôi không chắc về regex hay tình huống của bạn ..

Cách CTRL + A, Chọn menu TextFX -> Chỉnh sửa TextFX -> Xóa các dòng trống và viola tất cả các dòng trống đã biến mất.

Một ghi chú bên cạnh - nếu dòng trống tức là không chứa khoảng trắng, điều này sẽ hoạt động


12

Bạn có thể tìm kiếm regex sau: ^(?:[\t ]*(?:\r?\n|\r))+và thay thế nó bằng trường trống


11

Ctrl + H.

tìm - \ r \ r thay thế bằng - \ r.


Điều này hoạt động với tôi, loại bỏ dòng bổ sung, theo nghĩa là tìm kiếm gấp đôi \ r thay thế bằng đơn \ r. Cảm ơn!!
genpet

Điều này hoạt động tốt, tuy nhiên tôi thấy rằng tôi cần chạy nó nhiều lần trong tài liệu của mình trước khi tất cả các phiên bản của \ r \ r biến mất. Tôi không chắc tại sao.
Hawkwing

7

Điều này rõ ràng không hoạt động nếu các dòng trống chứa các tab hoặc khoảng trống. Nhiều trang web (ví dụ: http://www.guardian.co.uk/ ) chứa các dòng trắng này, là kết quả của trình soạn thảo HTML bị lỗi.

Xóa khoảng trắng bằng biểu thức chính quy như sau:

thay đổi mẫu: [\ t] + $ thành không có gì.

trong đó [\ t] khớp với tab hoặc dấu cách. '+' khớp với một hoặc nhiều lần xuất hiện và '$' đánh dấu sự kết thúc của dòng.

Sau đó sử dụng notepad ++ / textFX để xóa các dòng trống đơn hoặc thêm. Hãy chắc chắn rằng những dòng trống này không đáng kể trong bối cảnh nhất định.


5

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

Đôi khi \ n \ r vv không hoạt động, ở đây để tìm ra nó, biểu thức thực sự thường xuyên của bạn nên là gì.

Ưu điểm của thủ thuật này: Nếu bạn muốn thay thế nhiều tệp cùng một lúc, bạn phải cần phương pháp này. Ở trên sẽ không hoạt động ...


5

1) Ctrl + H(Hoặc Search 🠆 Replace..) để mở cửa sổ Thay thế.

2) Chọn 'Search Mode' 'Biểu thức chính quy'

3) Trong 'Tìm gì loại ^(\s*)(.*)(\s*)$& trong 'Replace With' loại\2

  • ^ - Trận đấu bắt đầu của ký tự dòng
  • (\s*) - Phù hợp với các ký tự không gian trống
  • (.*) - Phù hợp với bất kỳ nhân vật
  • (\s*) - Ghép các ký tự khoảng trống
  • $ - Khớp cuối ký tự
  • \2 - Biểu thị các đối số phù hợp của khung thứ 2

nhập mô tả hình ảnh ở đây Tham khảo https://www.rexegg.com/regex-quickstart.html để biết thêm về regex.


4
  1. Chỉnh sửa >> Thao tác trống >> Cắt không gian hàng đầu và lưu trữ (để xóa các tab và khoảng trắng ở các dòng trống)
  2. Ctrl+ Hđể lấy cửa sổ thay thế và thay thế mẫu: ^\r\nkhông có gì (chọn biểu thức chính quy)

Lưu ý: bước 1 sẽ xóa ý định mã của bạn được thực hiện thông qua các tab và khoảng trắng


4

CTRL + A, Chọn menu TextFX -> Chỉnh sửa TextFX -> Xóa các dòng trống như đề xuất ở trên.

Nhưng nếu các dòng chứa một số khoảng trắng, sau đó di chuyển con trỏ đến dòng đó và thực hiện CTRL + H. Phần "Tìm gì:" sẽ hiển thị khoảng trống và trong phần "Thay thế bằng", để trống. Bây giờ tất cả các khoảng trắng đã được xóa và bây giờ hãy thử CTRL + A, Chọn menu TextFX -> Chỉnh sửa TextFX -> Xóa các dòng trống


4

/n/rgiả định một loại ngắt dòng cụ thể. Để nhắm mục tiêu bất kỳ dòng trống, bạn cũng có thể sử dụng:

^$

Điều này nói - bất kỳ dòng nào bắt đầu và sau đó kết thúc không có gì giữa. Đây là nhiều hơn một bắt tất cả. Thay thế bằng cùng một chuỗi trống.


3

Tôi không thấy câu kết hợp là câu trả lời, vì vậy hãy tìm kiếm ^ \ s + $ và thay thế bằng {nothing}

^\s+$ means
  ^ start of line
  \s+ Matches minimum one whitespace character (spaces, tabs, line breaks)
  $ until end of line

nếu bạn muốn nhiều dòng bạn có thể thử: ^\s+^(\S)và thay thế bằng \1.
jiggunjer


1

Một thay thế dễ dàng để loại bỏ khoảng trắng từ các dòng trống:

  1. TextFX> TextFX Chỉnh sửa> Cắt không gian lưu trữ

Điều này sẽ loại bỏ tất cả các dấu cách, bao gồm cả các dấu cách trong các dòng trống. Hãy chắc chắn rằng, không có dấu cách là đáng kể.


0

Một số biểu thức trên và biểu thức mở rộng không hoạt động với tôi, nhưng biểu thức chính quy "$ \ n $" đã làm.


0

công việc này đối với tôi:

SEARCH:^\r  
REPLACE:            (empty)

1
Điều này sẽ không hoạt động cho linux eol \nvà windows eol\r\n
Toto
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.