Làm cách nào để sắp xếp lại các cột được phân định bằng đường ống trong Notepad ++?


8

Tôi đang cố gắng định vị lại mọi dòng trong tệp .txt theo cách sau dưới đây. Tuy nhiên tôi không có ý tưởng về cách đi về nó. Điều này có thể với Notepad ++ không?

Từ
apple|apple123@aol.com|orange
celery|celery@aol.com|cabbage
sandwich|sandwich@aol.com|turkey

Đến
apple|orange|apple123@aol.com
cần tây|cabbage|celery@aol.com
sandwich|turkey|sandwich@aol.com


Tôi chỉ tìm thấy cái này, cái mà trước đây tôi không biết nhưng trông cực kỳ hữu ích: Chỉnh sửa các cột trong Notepad ++ với plugin TextFX
MC10

Tôi sẽ không gọi đây là "đường tái định vị".
Lightness Races in Orbit

Câu trả lời:


15

Sắp xếp lại các cột trong một tệp văn bản

Có, điều này là có thể trong vanilla Notepad++, mặc dù như đã lưu ý, cũng có những plugin sẽ làm điều đó. Cách tiếp cận tốt hơn (mạnh mẽ hơn) có thể là sử dụng một số công cụ xử lý văn bản dòng lệnh, nhưng nếu bạn cần một giải pháp nhanh và bẩn, bạn có thể tìm thấy bên dưới:

Giả sử đầu vào chính xác của bạn ( col1|col2|col3, đường ống giới hạn, đường ống trong col2 ):

Tìm thấy : (.*?)\|(.*?)\|(.*)

Thay thế : \1|\3|\2

làm việc cho tôi ở đây trong Notepad++, được xây dựng vào tháng 1 năm 2015. Hơi tàn bạo, nhưng nó hoạt động.

Giải trình:

.* - khớp với bất kỳ ký tự nào (ngoại trừ dòng mới), trong khoảng thời gian từ 0 đến không giới hạn

.*? - khớp với bất kỳ ký tự nào (ngoại trừ dòng mới) như trên, trong một không tham lam cách (tức là khớp càng ít càng tốt )

(.*) - dấu ngoặc đơn biểu thị nhóm bắt ở trên (để sử dụng trong Thay thế ví dụ như \1, \2, \3 v.v.)

\| - \ thoát ống ( | ) để phù hợp với nó theo nghĩa đen

\1|\3|\2 - in nhóm 1 khớp, ống, thứ ba nhóm phù hợp, ống, nhóm phù hợp thứ hai


Tôi rất vui, tôi rất vui vì nó đã giúp bạn và hy vọng nó sẽ giúp được người khác :-) Không cần thiết, nhưng bạn cũng có thể nhấp vào dấu tick để chấp nhận câu trả lời nếu nó giải quyết vấn đề của bạn - bạn không được tự do, hoặc để chờ câu trả lời tốt hơn nữa
bertieb

Bạn không cần phải làm .* không tham lam, I.e. .*? để tránh nhiều quay trở lại?
Ex Umbris

@ExUmbris: thường việc tối ưu hóa bắt đầu khi tốc độ có vẻ không đủ
souser12345

OTOH cố tình viết một truy vấn tối ưu vì mục đích không viết ? nhân vật có vẻ ngớ ngẩn.
Lightness Races in Orbit

1
(.*?)|(.*?)|(.*) làm việc cho tôi
Shaz
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.