2つのファイル間の共通データセットをマージする方法

2つのファイル間の共通データセットをマージする方法

2つのデータセットをマージしようとしています。

file1は、うるう年と非うるう年を一緒に記述するために使用される最大366の数値ユリウス暦日付テキストファイルです。

1
2
3
4
5
6
7
8
9
10

ファイル2は、年中欠けているさまざまな日を含むデータセットです。

1 0.055980045
4 0.026198495
6 0.063033253
8 0.079462815

以下のようなファイルを作成しようとしています。 3

1 0.055980045
2
3
4 0.026198495
5
6 0.063033253
7
8 0.079462815
9
10

多くのコマンドを試しましたが、これを実行できませんでしたsortgrepどんな提案でも

ベストアンサー1

awkこの目的に使用できます。

awk 'NR==FNR {missing[$1]=$2} NR>FNR {printf("%s %s\n",$1,missing[$1]);}' file2.txt file1.txt > file3.txt

file2.txtこの内容が最初に処理され、処理されますfile1.txt

  • 処理中(各ファイルの行番号file2.txtはグローバル処理の行番号と同じです)、「年間欠損日」の関連付けを配列に読み込みます。FNRNRmissing

  • 処理中に、file1.txt配列で見つかった年と欠落した日付missing(または存在しない場合は空の文字列)を印刷します。

出力はファイルにパイプされますfile3.txt

おすすめ記事