Сравнение данных между двумя разными файлами в Unix

Обычно, когда я попадаю в такие ситуации, я делаю следующее ..

Пример: Предположим, у меня есть файл 'xxx \ nyyy'

Я знаю, что он начинается с 'xxx' .....

Я использую команду:

 rm -i xxx*

И удаляю ПРАВЫЙ файл при появлении запроса, хотите ли вы удалить файл или нет.

0
13.06.2018, 18:26
2 ответа

Для правильной работы commоба файла должны быть отсортированы лексикографически, а не численно. Вы можете отсортировать файлы перед вызовом commс помощью

.
sort -o file1 file1
sort -o file2 file2 

Затем:

$ comm -23 file1 file2
4
8

Или вы можете сортировать файлы одновременно с вызовом comm, если ваша оболочка поддерживает подстановку процессов:

$ comm -23 <( sort file1 ) <( sort file2 )
4
8
4
28.01.2020, 02:15

Вы можете использовать grep

grep -F -x -f 'File2' -v 'File1'

Шаблон фиксированных --строк (-F )в файле 2 (-f)

Используйте -xдля поиска целых строк. В противном случае «0123» в файле 1 будет исключено из вывода из-за «12» в файле 2.

найти аналогичную прямую и обратную с (-v)

2
28.01.2020, 02:15

Теги

Похожие вопросы