Thay đổi EOL trên nhiều tệp trong một lần


100

Có cách nào trong Notepad ++ (hoặc thậm chí với một công cụ khác) để thay đổi dòng kết thúc tự động trên nhiều tệp trong một lần không?

tức là chuyển đổi hỗn hợp các tệp windows EOL ( CRLF) và UNIX EOL ( LF) thành tất cả các tệp Windows EOL ( CRLF)


1
Trong trường hợp notepad ++ không phải là yêu cầu chắc chắn, thông tin ở đây có thể có liên quan: stackoverflow.com/questions/3110031/…
đăng lại vào

Câu trả lời:


102

Các Thay thế hộp thoại có thể xử lý ký tự mở rộng như EOL. Chỉ cần thay đổi "Chế độ tìm kiếm" thành "Mở rộng" và bạn có thể làm việc với EOL (\ r \ n trong Windows hoặc \ n trong Unix), tab (\ t), v.v.

Bạn cũng có thể sử dụng tab Tìm trong Tệp của hộp thoại để thay thế trên nhiều tệp.

Ảnh chụp màn hình


14
Lưu ý rằng giải pháp này sẽ không hoạt động nếu tất cả các tệp của bạn chưa có kiểu unix. Vì thay thế \nbằng \r\nsẽ chuyển \r\nthành \r\r\n.
Kirk Woll

-1 mà không thay đổi Chỉnh sửa> chuyển đổi EOL (xem Dos \ Windows trong thanh trạng thái của ảnh chụp màn hình của bạn), nhấn ENTER sẽ chèn EOL sai - và có EOL hỗn hợp thậm chí còn tồi tệ hơn việc giữ cho bất kỳ các tiêu chuẩn
Aprillion

42
thay thế \ n bằng \ r \ n. sau đó thay thế \ r \ r \ n bằng \ r \ n. thì đấy!
dev_row

2
Tại sao ví dụ ảnh chụp màn hình của bạn hiển thị \ttrong Find what? Các tab không liên quan gì đến việc thay đổi kết thúc dòng, phải không?
trejder

1
tuyệt vời ... nó hoạt động hoàn hảo trong notepad ++ biên tập ... nó tiết kiệm công sức rất lớn, mà chúng ta sẽ phải chi tiêu bởi những thay đổi thủ công
Aniruddha

91

Tôi có Notepad ++ 6.1.2.
Trong menu "Chỉnh sửa", bạn có "Chuyển đổi EOL" thực hiện chính xác những gì bạn cần.


24
hoạt động trên cơ sở tệp, không thể áp dụng cho toàn bộ tập hợp tệp.
fduff

10
Bạn đã đọc tiêu đề của câu hỏi chưa? Bạn có thấy phần "thay đổi EOL trên nhiều tệp " không?
Sk8erPeter

2
Bạn sẽ mở nhiều tệp để làm điều đó với nhiều tệp, tuần tự. Giống như anh ấy nói, "trong một lần" ban đầu không có ở đó.
gparent,

7
Trên thực tế, câu trả lời rất hữu ích đối với tôi, vì tôi cần thay đổi EOL trong các tệp đơn lẻ và tôi không biết làm thế nào.
DiegoDD

5
Câu trả lời hữu ích như thế này đi lên đầu tiên trong Google
Matthew Khóa

69

Sử dụng tính năng 'Tìm trong tệp' (Ctrl + Shift + F). Thay đổi chế độ tìm kiếm ở dưới cùng bên trái thành 'Biểu thức chính quy'.

Trong hộp 'Tìm gì', hãy sử dụng mẫu này:

(?<!\r)\n

Thay thế bằng:

\r\n

Chọn thư mục của bạn và chỉ định bất kỳ bộ lọc loại tệp nào. Chọn 'Trong tất cả các thư mục con' nếu bạn muốn. Nhấp vào 'Thay thế trong Tệp'.

Điều này làm là thay thế bất kỳ ký tự dòng mới nào (\ n) hiện không đứng trước dấu xuống dòng (\ r) bằng \ r \ n. Vì vậy, nó sẽ không khớp với các kết thúc dòng đã là kiểu Windows.

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


1
Bạn có thể giải thích những gì (?<!\r)\ncó nghĩa là, đặc biệt là phần đầu tiên ?<!, cảm ơn!
user1032613

2
những (?<! )là một lookbehind tiêu cực. Nó có nghĩa là khớp nếu tiền tố vắng mặt. Trong trường hợp này, nó đang kiểm tra \rvà sẽ chỉ khớp nếu \nkhông có dấu \rtrước nó.
rtpHarry

Vâng. Tôi đồng ý với rtpHarry. Đây là phần này từ câu trả lời của tôi: "bất kỳ ký tự dòng mới nào (\ n) hiện không đứng trước dấu xuống dòng (\ r)".
Sean

1
giải pháp tinh vi nhất!
Philipp Michalski

4
Về mặt kỹ thuật, đây là câu trả lời chính xác và đầy đủ nhất trên trang này.
dotNET

8

Sử dụng thay thế tất cả bằng biểu thức chính quy

(\r?\n)|(\r\n?)

đến

\r\n

Điều này sẽ khớp với mọi mẫu kết thúc dòng có thể có (đơn \ r, \ n hoặc \ r \ n) trở lại \ r \ n (Windows).

Để hoạt động trên nhiều tệp, hãy:

  • Sử dụng "Thay thế Tất cả trong tất cả tài liệu đã mở" trong tab "Thay thế". Trước tiên, bạn sẽ phải kéo và thả tất cả các tệp vào Notepad ++. Thật tốt là bạn sẽ có quyền kiểm soát tệp nào sẽ hoạt động nhưng có thể chậm nếu có hàng trăm hoặc hàng nghìn tệp.
  • "Thay thế trong tệp" trong tab "Tìm trong tệp", bằng bộ lọc tệp bạn chọn, ví dụ: * .cpp * .cs trong một thư mục được chỉ định.

Câu trả lời hay nhất, vì nó hoạt động với tất cả các hương vị của phần cuối dòng. Cảm ơn!
yoyo

Đây là câu trả lời tốt nhất và dễ nhất!
user1447420

5

Giải pháp LÀM VIỆC duy nhất mà tôi tìm thấy cho nhiều tệp / thư mục, sau khi googling trong 1 giờ là:

  • cài đặt chế độ dùng thử PyCham ,
  • mở và chọn Thư mục / Thư mục Dự án của bạn và làm theo ảnh chụp màn hình

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


Cũng hoạt động trong IntelliJ IDEA Community Edition, miễn phí và không yêu cầu dùng thử. Ý TƯỞNG IntelliJ .
CodeMonkey

1

Tìm thấy giải pháp này thông qua cuộc thảo luận này :

Bạn cũng có thể đặt EOL mặc định trong notepad ++ thông qua "Cài đặt" -> "Tùy chọn" -> "Tài liệu mới / Thư mục mặc định" rồi chọn "Unix / OSX" trong hộp Định dạng.

Lưu ý: Người ta luôn có thể sử dụng tùy chọn ngoài băng tần bằng dòng lệnh:

unix2dos *.cmd
dos2unix *.sh

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.