電子書籍の厳選無料作品が豊富!

perl初心者です。

地名1.csv 地名2.csv の2つのファイルがあったとします。

==地名1.csv==
a,b,札幌,c,d,
e,f,沖縄,f,r,
t,u,東京,w,e,
r,u,千葉,e,q,
l,o,金沢,e,c,
p,l,高知,w,w,

==地名2.csv==
沖縄,千葉
高知,千葉

ここで、地名2.csvの1行に書かれた地名に挟まれた行を地名1.csvから
ごっそりと抜き出したのです。。
具体的には、実行すると、

e,f,沖縄,f,r,
t,u,東京,w,e,
r,u,千葉,e,q,

r,u,千葉,e,q,
l,o,金沢,e,c,
p,l,高知,w,w,

が抽出され、それが別ファイルに書き込めたら一番なのです。

地名2.csvを見ての通り、地名2.csvの地名の順番は
地名1.csvの順番と逆なこともあるので、
if文で条件分岐をすればいいのだと思うのですが、
ここがうまく書けません。。

どなたかお知恵を貸していただけないでしょうか。
どうぞどうぞよろしくお願い致します。

A 回答 (12件中11~12件)

なにをなさりたいのかがよくわかりません。


補足要求です。
質問1:
>ここで、地名2.csvの1行に書かれた地名に挟まれた行を地名1.csvから
>ごっそりと抜き出したのです。。
これは、地名2.csvの各行毎に、抜き出す判断をするのですか?
例:
地名2.csvの1行目は、沖縄、千葉なので、地名1.csvから、
e,f,沖縄,f,r,
r,u,千葉,e,q,
が対象となるはずだが、何故、東京が抜き出されるのかがわかりません。

質問2:
e,f,沖縄,f,r,
t,u,東京,w,e,
r,u,千葉,e,q,

r,u,千葉,e,q,
l,o,金沢,e,c,
p,l,高知,w,w,
は、1行分の空白行をいれて同じファイルに書き出すのですか?
それとも、別のファイルに書き出すのですか?
(別のファイルに書き出すならファイル名はOUT1.cs1、OUT2.csvのように連番で良いですか?)
    • good
    • 1
この回答へのお礼

一緒に考えて下さりありがとうございます。。(涙)助かります。
書き出すファイル名はOUT1.cs1、OUT2.csvのように連番でも良いですし、(後で1ファイルに別コマンドでつなげればよいので)
ただ、最終的には1ファイルにしたくは思っています。

お礼日時:2016/10/13 11:52

メモリが潤沢にあるという前提でよければ, 両方のファイルからすべてのデータを読み込んだ後「地名2.csv」のデータを (必要なら)

入れ替えればいい.
    • good
    • 1
この回答へのお礼

なるほど、そういう考え方もあるのですね!
全く思いつきませんでした、、

お礼日時:2016/10/13 11:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!