Join コマンドは、大容量ファイルの比較時に出力を提供しません。

Join コマンドは、大容量ファイルの比較時に出力を提供しません。

ここに画像の説明を入力してください。以下のように2つのファイルがあります。 1つのファイルは20 GB、もう1つはMBです。

file1.txt (100 MB)

6000000
6000001
6000003
file2.txt (20 gb) 

6000000;dgdfgdfgdfgdfgdggeewtwtwtwetewtt
6000003;eryeyyrtuytityiytititityityiytii
6000005;qwrwqrwqrrrrerewrwerewrwrrrewrew

次のように一致するすべてのコンテンツと出力が必要です。

6000000;dgdfgdfgdfgdfgdggeewtwtwtwetewtt
6000003;eryeyyrtuytityiytititityityiytii

今、両方のファイルにソートコマンドを使用し、以下のコマンドをリンクしましたが、出力は出ませんか?ここで何が間違っているのかを助けてください。

join -t';' file1.txt file2.txt >> file3.txt

ベストアンサー1

他の人がすでに述べたように、最初のファイルはあらかじめUNIX行末に変換する必要があります。ただし、ファイル自体を変更する必要はありません。代わりに、すぐに変換を試すことができます。

コマンドラインを次のように変更します。

join -t';' <(dos2unix file1.txt) file2.txt >> file3.txt

両方のファイルがdoで終わる場合は、次のようにします。

join -t';' <(dos2unix file1.txt) <(dos2unix file2.txt) >> file3.txt

おすすめ記事