• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:awkを用いた複数ファイルのフィールドの結合方法)

awkを用いた複数ファイルのフィールドの結合方法

このQ&Aのポイント
  • gawkを使用して複数の固定フィールドを抜き出し、1つのファイルへ結合する方法について分からない
  • 複数のファイルから特定のフィールドを抜き出し、結合して新しいファイルに出力するawkスクリプトの作成方法が分からない
  • これまで一つのファイルからの抽出しか行っておらず、複数ファイルの結合方法についての知識が不足している

質問者が選んだベストアンサー

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

No.1です。うまくいきませんでしたか…。私の環境ではうまくいったのですが。 こういう方法はいかがでしょうか。 paste File1.dat File2.dat | gawk '{print $1,$3,$7}' > hoge.out

mindatg
質問者

お礼

ありがとうございます、出力できました。 こちらの方法では 1番目のファイルのフィールド数が2番目ファイルのフィールド数より少ない事が前提のようですね。 どうにかしてフィールド数が同じ場合や入力順番が逆の場合でも動作するよう工夫してみます。

mindatg
質問者

補足

度々とんでもない恥ずかしい勘違いをしておりました。 File1.dat(フィールド数)File2.dat(フィールド数) 連続のフィールドとして扱えば解決しました、どうもありがとうございます。

その他の回答 (1)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

gawk '{n1=$1;n2=$3;getline < "File2.dat";n3=$4;print n1,n2,n3}' File1.dat > hoge.out でいかがでしょうか。

mindatg
質問者

お礼

ご意見ありがとうございます。 一旦変数に投げる形は私も試したのですが、出力結果が片方のファイル(ham_kamo様の例の場合File1.dat)のフィールドのみ抽出されてしまうようです。 実行結果--hoge.out 90 11 33 94 18 71 85 29 68

mindatg
質問者

補足

失礼しました、先に書いた実行結果は間違いです。 1996 2 1996 3 1996 4

関連するQ&A