Tôi có hai tệp không phân loại có một số điểm chung.Làm thế nào để loại bỏ các dòng chung giữa hai tập tin mà không cần phân loại?
file1.txt
Z
B
A
H
L
file2.txt
S
L
W
Q
A
Con đường tôi đang sử dụng để loại bỏ dòng chung như sau:
sort -u file1.txt > file1_sorted.txt
sort -u file2.txt > file2_sorted.txt
comm -23 file1_sorted.txt file2_sorted.txt > file_final.txt
Output:
B
H
Z
Vấn đề là tôi muốn giữ lại thứ tự của file1.txt, ý tôi là:
đầu ra mong muốn:
Z
B
H
Một giải pháp tôi tought đang làm một vòng lặp để đọc tất cả các dòng của file2 .txt và:
sed -i '/^${line_file2}$/d' file1.txt
Nhưng nếu các tập tin là lớn hiệu suất có thể hút.
- Bạn có thích ý tưởng của tôi không?
- Bạn có cách nào khác để làm điều đó không?
'a [$ 0] = 7' Tại sao bằng bảy? Cảm ơn! :) – harrison4
@JohnDoe, chúng tôi chỉ cần số không khác, 7 và 1 không có sự khác biệt. Tôi thay đổi nó thành 1, nếu nó làm cho bạn cảm thấy thoải mái. :-) – Kent
Vâng, tôi cảm thấy tốt hơn bây giờ. :) – harrison4