Найти другую строку в 2 несортированных файлах с разным размером - PullRequest
0 голосов
/ 17 января 2020

У меня есть файлы f_hold и f_new. f_new в 2 раза больше, чем f_hold. Оба файла не отсортированы.
Как мне удалить строки в f_new, которые находятся в f_hold? например:

f_hold:

aaa    
bbb    
ccc    
ddd
eee

f_new:

ppp
ddd
aaa
ccc
bbb
fff
jjj
nnn

что я хочу:

ppp
fff
jjj
nnn

Так что это не просто построчное сравнение. Я попробовал несколько советов, таких как 'grep -Fxv -f', 'comm' и т. Д. c ... но они делают построчное сравнение. Есть ли команда linux для этого?

1 Ответ

0 голосов
/ 18 января 2020

для предоставленного вами примера будет работать grep:

grep -v -f f_hold f_new

-f флаг означает, что «чтение из файла»

-v флаг используется для инвертирования соответствия.

ОБНОВЛЕНИЕ:

Я думаю, awk может быть намного быстрее:

awk 'NR==FNR{a[$0];next} !($0 in a)' f_hold f_new
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...