Как сравнить два файла и создать другой файл, который не находится в первом файле?

file1 содержит:

 100 200 300 400 

file2 содержит:

 500 600 700 200 300 

Ожидаемым выходным файлом будет:

 500 600 700 

  • Замена столбца «время» соответствующими значениями
  • Как сортировать и присоединяться одновременно?
  • Удалить пустой раздел конфигурации
  • Если строка соответствует в файле, как выводить конкретную строку (строки), которая не встречается на определенном расстоянии от сопоставленной строки?
  • Как заменить текст между двумя маркерами в файле секцией текста из другого файла?
  • Одиночная запись файла, разбитого на несколько строк
  • Как разбить файл, подсчитав цифры в строке?
  • делает головной вход> вывод копирует все невидимые символы в новый файл?
  • 2 Solutions collect form web for “Как сравнить два файла и создать другой файл, который не находится в первом файле?”

    Если вы не возражаете, сортировка выводится, вы можете использовать comm .

     comm -13 <(sort /tmp/file1) <(sort /tmp/file2) 

    Выход (неявно отсортированный):

     500 600 700 

    С join :

     join -j 1 -v 2 <(sort file1) <(sort file2) 

    Где:

    • -j определяет поле объединения
    • -v для подавления соединенных линий

    Или с awk :

     awk 'NR==FNR{a[$1]++} !a[$1]' file1 file2 
    • Первый файл загружен и массив
    • а затем, когда второй файл обрабатывается и если это значение в a отсутствует, распечатайте строку
    Linux и Unix - лучшая ОС в мире.