У меня есть два файла, которые не сортируются, которые имеют некоторые общие черты.
file1.txt
Z
B
A
H
L
file2.txt
S
L
W
Q
A
Способ, которым я использую, чтобы удалить общие строки, следующий:
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
Вывод:
B
H
Z
Проблема в том, что я хочу сохранить порядок файла file1.txt, я имею в виду:
Желаемый результат:
Z
B
H
Одно решение, которое я делаю, делает цикл, чтобы прочитать все строки файла file2.txt и:
sed -i '/^${line_file2}$/d' file1.txt
Но если файлы большие, производительность может сосать.
- Вам нравится моя идея?
- Есть ли у вас альтернатива?