Обработка текста: сравнить два отсортированных файла и исключить разные строки на основе второго столбца - PullRequest
0 голосов
/ 15 мая 2018

FiLea

232 com.path.class1
32  com.path.class2
123 com.path.class3

FILEB

675 com.path.class6
567 com.path.class2
657 com.path.class1

noLines (файл A)> noLines (файл B)

Я хочу удалить из файлаA все строки, в которых столбец 2 (содержащий классы) не существует в файлеB

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

с join (ожидает сортировки файлов; сортируйте)

$ join -j2 -o1.1,1.2 <(sort -k2 file1) <(sort -k2 file2)

232 com.path.class1
32 com.path.class2
0 голосов
/ 15 мая 2018

После awk может помочь вам в этом же.

awk 'FNR==NR{a[$2];next} ($2 in a)' fileB fileA

Если вы хотите сохранить вывод в файле Input_file, то сам добавьте > temp_file && mv temp_file fileA к указанному выше коду, затем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...