2016-08-24 5 views
-1

私は以下のようにfiles.txtを持っています。2つのファイルを1行ずつ追加したいですか?

File1.txt |s File2.txt: 
-----------------------           
P4-L5, 107MH62, 10.33.145.166, P4:R1:09 |s 10.33.145.166, 1, 3 
P4-L21, 108LH62, 10.33.209.168, P4:R3:10 |s 10.33.209.168, 2, 5 
P5-L16, 108MH62, 10.34.61.116, P5:R2:16 |s 10.34.61.116, 5, 8 
P4-L13, 109LH62, 10.33.177.168, P4:R2:09 |s 10.33.177.168, 10, 12 

私は親切に

Output file should be like: 
--------------------------- 
|P4-L5, 107MH62, 10.33.145.166, P4:R1:09, 1, 3| 
|P4-L21, 108LH62, 10.33.209.168, P4:R3:10, 2, 5| 
|P5-L16, 108MH62, 10.34.61.116, P5:R2:16, 5, 8| 
|P4-L13, 109LH62, 10.33.177.168, P4:R2:09, 10, 12| 

をFILE1.TXTこのためbashやpythonのコマンドで私を助けるためにIPアドレスを比較して、FILE2.TXTからそれぞれの数を追加したいです!

ありがとうございます。

+0

予想される入力と出力をフォーマットしてください。また、これまでに何を試しましたか? – sjsam

+0

私はこの "paste file1.txt file2.txt> fileresults.txt"コマンドをファイルにマージしようとしました。私は両方のファイルの列を比較し、それぞれ2番目のファイルの内容を追加したいと思います。 –

答えて

2
> join -t ',' -1 3 -2 1 -o 1.1 1.2 1.3 1.4 2.2 2.3 file1 file2 
P4-L5,107MH62,10.33.145.166,P4:R1:09,1,3 
P4-L21,108LH62,10.33.209.168,P4:R3:10,2,5 
P5-L16,108MH62,10.34.61.116,P5:R2:16,5,8 
P4-L13,109LH62,10.33.177.168,P4:R2:09,10,12 

不一致-eオプションを使用して、例:

join -t ',' -1 3 -2 1 -e 'NA' -o 1.1 1.2 1.3 2.2 2.3 -a1 file1 file2 
P4-L5,107MH62,10.33.145.166,1,3 
P4-L21,108LH62,10.33.209.168,2,5 
P5-L16,108MH62,10.34.61.116,5,8 
P4-L13,109LH62,10.33.177.168,NA,NA 

説明:

  • -t',':入力および出力フィールドセパレータとしてCHARを使用
  • -1 3:キー
  • -2 1に参加するようFILE1の第三フィールドを使用します。キー
  • -o 1.1 1.2 1.3 1.4 2.2 2.3に参加するようFILE2の第一フィールドを使用:出力ラインを構築しながら、FORMATに従います。 (最初のファイルの最初のフィールド:1.1)
  • -e 'NA':詳細についてはNA

Useコマンドjoin --helpで行方不明の入力フィールドを交換してください。

+0

本当に感謝の仲間に役立ちます! –

関連する問題