Cách xóa cột khỏi tệp Notepad ++


4

Tôi muốn xóa một cột ở giữa tệp txt trong notepad ++. Độ dài của tệp xấp xỉ 50K + dòng vì vậy tôi không muốn phải giữ phím trong khi con trỏ từ từ di chuyển tuyến tính qua các hàng.


5
Bạn có thể sử dụng một biểu hiện thông thường Để làm việc đó: Cách sử dụng biểu thức chính quy trong Notepad ++ (hướng dẫn) .
Andrew Morton

Đây có phải là một tập tin phân định?
nixda

Câu trả lời:


3

Thử:

Alt + Shift + Nhấp chuột trái

Nó sẽ vẽ một hình chữ nhật lựa chọn, có thể làm việc cho bạn.


Bạn phải chắc chắn về câu trả lời của bạn hoặc viết nó trong bình luận
yass

1
OP đã không xác định nếu các cột có cùng độ dài, nếu chúng là hoạt động hoàn hảo, anh ấy đã không cung cấp cho chúng tôi quá nhiều thông tin để làm việc. Đó là lý do tại sao tôi viết "có thể".
GorangeNinja

Câu trả lời này đã giúp tôi rất nhiều! Đặt con trỏ của bạn ở góc trên cùng bên trái của hộp bạn muốn xóa, cuộn đến cuối tệp, giữ Alt + Shift và cẩn thận vẽ hộp bằng chuột. Nhấn Del.
bendodge

2

Tôi giả sử bạn có Notepad ++ với Plugin TextFX v0.26 đã cài đặt và bạn chọn "Biểu thức chính quy" trong hộp thoại Thay thế.

Nếu dữ liệu của bạn có định dạng

col1 col2 col3 col4
col1 col2 col3 col4
col1 col2 col3 col4
col1 col2 col3 col4

trong đó các cột không có khoảng trắng và được phân tách bằng một khoảng trắng, sau đó, giả sử bạn muốn xóa cột thứ ba: bạn có thể tìm kiếm (.*?) (.*?) (?:.*?)( .*) và thay thế bằng $1 $2$3 (không gian được yêu cầu) để có được

col1 col2 col4
col1 col2 col4
col1 col2 col4
col1 col2 col4

regex101.com có một lời giải thích gọn gàng hơn về regex tìm kiếm hơn tôi sẽ:

/(.*?) (.*?) (?:.*?)( .*)/
    1st Capturing group (.*?)
        .*? matches any character (except newline)
            Quantifier: *? Between zero and unlimited times, as few times as possible, expanding as needed [lazy]
     matches the character  literally
    2nd Capturing group (.*?)
        .*? matches any character (except newline)
            Quantifier: *? Between zero and unlimited times, as few times as possible, expanding as needed [lazy]
     matches the character  literally
    (?:.*?) Non-capturing group
        .*? matches any character (except newline)
            Quantifier: *? Between zero and unlimited times, as few times as possible, expanding as needed [lazy]
    3rd Capturing group ( .*)
         matches the character  literally
        .* matches any character (except newline)
            Quantifier: * Between zero and unlimited times, as many times as possible, giving back as needed [greedy]

Regexes khác để đạt được kết quả tương tự là có thể.

Nếu các cột của bạn có chiều rộng cố định (và bao gồm khoảng trắng) hoặc được phân tách bằng một ký tự khác thì bạn sẽ phải sửa đổi biểu thức tìm kiếm và thay thế, nhưng không có dữ liệu mẫu và kết quả bắt buộc tôi không thể đưa ra câu trả lời chính xác.


1

Tôi không tin có một cách để làm điều này trong Notepad ++ mà không cần tải xuống / cài đặt plugin cho nó. Nếu tệp của bạn được phân tách, có lẽ bạn có thể tải nó vào Excel hoặc phần mềm tương tự và xóa cột theo cách đó?

Chỉnh sửa: Tôi chỉ nghĩ về một giải pháp thú vị. Bạn có thể thay đổi tốc độ cuộn dòng trong Windows hoặc bất kể hệ điều hành của bạn là gì, khởi động lại Notepad ++, sau đó cuộn chuột hoặc sử dụng các phím mũi tên. Tôi không biết điều này sẽ tạo ra bao nhiêu sự khác biệt, nhưng có lẽ nó đáng để thử.


Xem Là một câu trả lời không thể là một câu trả lời hợp lệ, hay đó là một nhận xét? Isnần Notepad ++ có khả năng sử dụng các biểu thức chính quy?
G-Man

Nếu bạn đọc toàn bộ câu trả lời của tôi, bạn sẽ thấy rằng tôi cung cấp một giải pháp.
Lethal Left Eye

-1

Bạn có thể làm việc ở chế độ cột trong Notepad ++. Tùy chọn này nằm trong menu Chỉnh sửa - nhấp vào nó sẽ nhắc bạn với phím tắt chính xác. Tôi nhấn và giữ phím Alt sau đó chọn dữ liệu tôi muốn xóa / chỉnh sửa.


OP có hơn năm mươi nghìn dòng để cuộn qua. Nếu bạn biết một cách để chọn (các) cột cho đến hết tài liệu, đó sẽ là thông tin hữu ích.
Andrew Morton
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.