- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:awkを用いた複数ファイルのフィールドの結合方法)
awkを用いた複数ファイルのフィールドの結合方法
このQ&Aのポイント
- gawkを使用して複数の固定フィールドを抜き出し、1つのファイルへ結合する方法について分からない
- 複数のファイルから特定のフィールドを抜き出し、結合して新しいファイルに出力するawkスクリプトの作成方法が分からない
- これまで一つのファイルからの抽出しか行っておらず、複数ファイルの結合方法についての知識が不足している
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。うまくいきませんでしたか…。私の環境ではうまくいったのですが。 こういう方法はいかがでしょうか。 paste File1.dat File2.dat | gawk '{print $1,$3,$7}' > hoge.out
その他の回答 (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 でいかがでしょうか。
質問者
お礼
ご意見ありがとうございます。 一旦変数に投げる形は私も試したのですが、出力結果が片方のファイル(ham_kamo様の例の場合File1.dat)のフィールドのみ抽出されてしまうようです。 実行結果--hoge.out 90 11 33 94 18 71 85 29 68
質問者
補足
失礼しました、先に書いた実行結果は間違いです。 1996 2 1996 3 1996 4
お礼
ありがとうございます、出力できました。 こちらの方法では 1番目のファイルのフィールド数が2番目ファイルのフィールド数より少ない事が前提のようですね。 どうにかしてフィールド数が同じ場合や入力順番が逆の場合でも動作するよう工夫してみます。
補足
度々とんでもない恥ずかしい勘違いをしておりました。 File1.dat(フィールド数)File2.dat(フィールド数) 連続のフィールドとして扱えば解決しました、どうもありがとうございます。