GNU/Linux >> Linux の 問題 >  >> Linux

2 つの CSV ファイルを結合するには?

csvkit を使用:

csvjoin -c email id_email.csv email_name.csv

または

csvjoin -c 2,1 id_email.csv email_name.csv

リビジョン 3 :

メールの両方のリストをアルファベット順に並べ替えてから、参加する必要があります。 email フィールドが file1 の 2 番目のフィールドであり、file2 の 1 番目のフィールドであるとします。

sort -t , -k 2,2 file1.csv > sort1.csv
sort -t , -k 1,1 file2.csv > sort2.csv
join -t , -1 2 -2 1 sort1.csv sort2.csv > sort3.csv

パラメータの意味

-t ,   : ',' is the field separator
-k 2,2 : character sort on 2nd field
-k 1,1 : character sort on 1st field
-1 2   : file 1, 2nd field
-2 1   : file 2, 1st field
>      : output to file

生産

email,ID,name
email,ID,name
...

メールのアルファベット順に並べ替えます。

いずれかのファイルにメールが含まれていない場合、結果から除外されることに注意してください。


やり過ぎかもしれませんが、データベース (OpenOffice Base など) に 2 種類のテーブルとしてインポートし、目的の出力であるレポートを定義することができます。

CSV のインポートに問題がある場合は、スプレッドシート プログラム (OpenOffice Calc など) でインポートできます。結果はデー​​タベースに簡単に転送できます。


Linux
  1. 指定された行数ごとにCSVファイルを分割する方法は?

  2. 2 つの XML ファイルを比較するにはどうすればよいですか?

  3. 多くの mp3 ファイルを結合/マージする方法は?

  1. Linuxで2つの文字列を一緒に含むファイルを見つける方法は?

  2. 2 つのファイルの最初の行だけを比較するには?

  3. 2 回の間に作成されたファイルを削除するには?

  1. Linuxで2つのテキストファイルを結合する方法

  2. 2 つの tarball のコンテンツを比較する方法

  3. AWK を使用して 2 つのファイルをマージする方法は?