1

У меня есть два файла по 3 ГБ для сравнения и сохранения данных различий в третьем файле.

Ниже приведены примеры данных.

Файл 1: июнь_01_2018.csv

Файл 2: июнь_02_2018.csv

Примечание: я хочу сохранить разницу в третий файл с заголовками столбцов.

Ожидаемый результат . Третий файл должен содержать записи с ID от 11 до 15 с заголовками столбцов.

Моя команда try: fc в командной строке,

>fc June_01_2018.csv June_02_2018.csv > June_Diff.csv

Но получаю неожиданный результат:

1 ответ1

1

Надежды не имеют ничего общего с (реалистичными) ожиданиями.

Заголовок точно такой же, поэтому не может быть разницы.
Кроме того, представление Excel не является CSV-файлом, вы должны опубликовать исходные файлы в виде текста.

Следующий пакетный файл читается в заголовке и отражается в diff.
Вместо fc он использует findstr с опциями

/B compare from line begin
/E compare upto line end
/V output lines **not** present in compared file
/G: get strings from a file

@Echo off
Set "File1=June_01_2018.csv"
Set "File2=June_02_2018.csv"
Set "File3=June_Diff.csv"

Set /P "Header="<"%File1%"
( Echo=%Header%
  Findstr.exe /BEV /G:"%File2%" "%File1%"
)>"%File3%"

Вариант с фк

@Echo off
Set "File1=June_01_2018.csv"
Set "File2=June_02_2018.csv"
Set "File3=June_Diff.csv"

Set /P "Header="<"%File1%"
( Echo=%Header%
  fc "%File1%" "%File2%"|more +3 
)>"%File3%"

Это оставляет только конечную линию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .