Сравните два csv-файла, содержащих похожие столбцы, устраните дубликаты и выведите уникальное содержимое в одном файле

#windows #powershell #ubuntu #compare

#Windows #powershell #ubuntu #Сравнить

Вопрос:

У меня есть два файла csv (аналогичный формат)

file1.csv

  post_status    post_type   post_content    post_title
 publish        post        paragraph one   title one
 publish        post        paragraph two   title two
 publish        post        paragraph three title three
 publish        post        paragraph four  title four
  

file2.csv

  post_status    post_type   post_content    post_title
 publish        post        paragraph one   title one
 publish        post        paragraph two   title two
 publish        post        paragraph three title three
 publish        post        paragraph four  title four
 publish        post        paragraph five  title five
 publish        post        paragraph six   title six
  

Требуется -output.csv

  post_status    post_type   post_content    post_title
 publish        post        paragraph five  title five
 publish        post        paragraph six   title six
  

Решения, которые я получил до сих пор, используют Power Shell и это:

 cat first.csv second.csv | sort -u >result.csv
  

Это приводит к результатам, которые не поддерживают согласованность исходного файла.

Я использую Ubuntu и Windows. Ищете простое элегантное решение. Любая помощь будет оценена по достоинству.

Комментарии:

1. @независимо от того, спасибо. И на какой платформе я бы попробовал это? Windows cmd или терминал Ubuntu?

Ответ №1:

Попробуйте

 $Content = Get-Content first.csv,second.csv
$Content | Select-Object -Unique | Out-File result.csv
  

Это решение для Windows Powershell

На самом деле, вы можете сделать все в одной строке:

 Get-Content first.csv,second.csv | Select-Object -Unique | Out-File result.csv
  

Единственное различие между вашей версией и моей (помимо использования псевдонимов linux для cmds powershell) заключается в том, что вы используете объект сортировки, который изменит порядок записей.:)