- ベストアンサー
Linux環境でのデータ結合方法について
- Linux環境でのデータ結合方法について解説します。
- 2つのファイルのデータを結合する方法として、同じフィールドの情報を結合する手法を紹介します。
- 具体的な手順や出力例を交えながら、データ結合に関する基本的な知識を提供します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
以下のスクリプトを作成して下さい。 名前を sample.pl とします。 ------------------------------------------ open(FH1,"<file1"); open(FH2,"<file2"); while (1){ $f1 = <FH1>; $f2 = <FH2>; if ($f1 eq "") {last;} @el1 = split(' ',$f1); @el2 = split(' ',$f2); if ($el1[0] eq $el2[1]){ $p2 = rindex($f2,'"'); $p1 = rindex($f2,'"',$p2-1); chomp($f1); $f1 .= substr($f2,$p1,$p2-$p1+1); print $f1 , "\n"; }else{ print $f1; } } ------------------------------------------ ファイル1のファイル名はfile1とします ファイル2のファイル名はfile2とします 上記のファイルが存在するディレクトリ上で perl sample.pl > kekkafile と入力して下さい kekkafileにあなたの望んだ結果が書き込まれています。 尚、ファイル1の最後は、空白が1桁あると言う前提です。
その他の回答 (2)
- tatsu99
- ベストアンサー率52% (391/751)
確認です。 >条件: >ファイル1の1フィールド目とファイル2の1フィールド>目が同じ時、ファイル2の最後にフィールドの情報を、ファイル1に結合する。(出力例のとおり) ファイル1の1フィールド目とファイル2の2フィールド目が同じ時の間違いではないでしょうか。(例をみると) ファイル2の最後のフィールドの情報を、ファイル1に結合する の間違いではないでしょうか。(例をみると) 個々のフィールドのセパレータはなんですか。タブですか、スペースですか。 2及び3フィールドは必ずダブルクオートで括られていますか。(例外はないですか) ファイル1とファイル2の行数は必ず同じ行数ですか。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
> お願いします。 なにを?
補足
結合させる方法を教えてください。 コマンドなど、簡単な方法があればと思っています。 ※ファイル2の最終フィールド(”・・・”)に、ブランクが含まれているのが、私の悩みの種です。 よろしくお願いいたします。
補足
すみません。記述ミスのご指摘、ありがとうございます。 以下、回答いたしますので、お願いします。 >ファイル1の1フィールド目とファイル2の2フィールド目が同じ時の間違いではないでしょうか。(例をみると) >ファイル2の最後のフィールドの情報を、ファイル1に結合する の間違いではないでしょうか。(例をみると) そのとおりです。記述ミスです。 >個々のフィールドのセパレータはなんですか。タブですか、スペースですか。 スペースで区切られています。 >2及び3フィールドは必ずダブルクオートで括られていますか。(例外はないですか) はい。必ずダブルクオートが付きます。 >ファイル1とファイル2の行数は必ず同じ行数ですか。 同じ行数です。必ずマッチするデータです。