質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JOIN

これはSQL文のJOINに関するタグです。リレーショナルデータベースシステムの二つ以上のテーブルを結合する際に、この構文が利用されます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

AWK

AWKは、UNIX 上で開発されたプログラミング言語で、CSVファイルなどのテキストファイルの処理を目的にデザインされています。

Q&A

解決済

2回答

2715閲覧

awkで2つのファイルを結合したい

DaichiYasuda

総合スコア173

JOIN

これはSQL文のJOINに関するタグです。リレーショナルデータベースシステムの二つ以上のテーブルを結合する際に、この構文が利用されます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

AWK

AWKは、UNIX 上で開発されたプログラミング言語で、CSVファイルなどのテキストファイルの処理を目的にデザインされています。

0グッド

0クリップ

投稿2017/06/14 13:28

下記のようなソートされていないファイルがあります。
実際はまだファイルに続きがあります。
2つのファイルを結合してdata3.csvのようにしたい
ソートがされていないだけで1と2にある駅名は同じです

data1.csv

若林駅, 志茂駅,10130 神泉駅,10246 沼部駅,10249 両国駅,102538 大塚駅,103926

data2.csv

志茂駅,13 牛田駅,13 篠崎駅,13 井荻駅,14 月島駅,15 柴又駅,15 沼袋駅,15

data3.csv

若林駅, 志茂駅,10130,13 神泉駅,10246 沼部駅,10249 両国駅,102538 大塚駅,103926

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

ソートされていないなら、片方のファイルを全部記憶するしか無いですね。
この場合は、ファイル2を記憶。

Bash

1awk -F, '!F{a[$1]=$2;next}{if($1 in a)$0=$0","a[$1];print}' data2.csv F=1 data1.csv

投稿2017/06/14 13:41

otn

総合スコア84499

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

他のコマンド使っていいなら

#!/bin/sh sort -k1,1 -t, data1.csv >tmp1 sort -k1,1 -t, data2.csv >tmp2 paste -d',' tmp1 tmp2 | \ awk -f hoge.awk >data3.csv rm -f tmp1 tmp2

hoge.awk はこんな感じで

BEGIN{ FS = "," } { if ($2 == "") { print $1 "," } else if ($4 == "") { print $1 "," $2 } else { print $1 "," $2 "," $4 } }

投稿2017/06/14 13:58

takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問