dポイントプレゼントキャンペーン実施中!

めぐみです。

tatsu99さま、以下のプログラムを親切にアドバイス頂きまして本当にありがとうございました。
追記で質問させて頂きたいことがあります。
---------------------------------------------------------------
$file_a = shift(@ARGV);
$file_b = shift(@ARGV);
open FHA,$file_a or die("can't open $file_a");
@data_a = ();
while($line=<FHA>){
chomp($line);
push @data_a,$line
}
close FHA;
open FHB,$file_b or die("can't open $file_b");
@data_b = ();
while($line=<FHB>){
chomp($line);
push @data_b,$line
}
close FHB;
foreach $da (@data_a){
printf("%s%d%d%d\n",$da,$data_b[0],$data_b[1],$data_b[2]);
printf("%s%d\n",$da,$data_b[0]);
printf("%s%d%d\n",$da,$data_b[1],$data_b[2]);
printf("%s\n",$da);
printf("%s%04d%02d%02d\n",$da,$data_b[0],$data_b[1],$data_b[2]);
printf("%s%02d%02d\n", $da,$data_b[1],$data_b[2]);

printf("%d%d%d%s\n",$data_b[0],$data_b[1],$data_b[2],$da);
printf("%d%s\n",$data_b[0],$da);
printf("%d%d%s\n",$data_b[1],$data_b[2],$da);
printf("%s\n",$da);
printf("%04d%02d%02d%s\n",$data_b[0],$data_b[1],$data_b[2],$da);
printf("%02d%02d%s\n",$data_b[1],$data_b[2],$da);
}---------------------------------------------------------
下記のような内容を追加で出力させることは難しいでしょうか。
1.B.txtを元に下記のように数字だけのデータも追加で出力させたかったです(1行目1986,2行目3,3行目6の場合)
198636
1986
36
19860306
0306

2.A.txtを元にA.txtから下記の内容も追加で出力させたかったです(4行目以降は無視して構いません)。
1行目と2行目
2行目と3行目
3行目と1行目

2行目と1行目
1行目と3行目
3行目と2行目

以上、何卒よろしくお願いいたします。

A 回答 (1件)

以下のようにしてください。


-------------------------------------------
$file_a = shift(@ARGV);
$file_b = shift(@ARGV);
open FHA,$file_a or die("can't open $file_a");
@data_a = ();
while($line=<FHA>){
chomp($line);
push @data_a,$line
}
close FHA;
open FHB,$file_b or die("can't open $file_b");
@data_b = ();
while($line=<FHB>){
chomp($line);
push @data_b,$line
}
close FHB;
foreach $da (@data_a){
printf("%s%d%d%d\n",$da,$data_b[0],$data_b[1],$data_b[2]);
printf("%s%d\n",$da,$data_b[0]);
printf("%s%d%d\n",$da,$data_b[1],$data_b[2]);
printf("%s\n",$da);
printf("%s%04d%02d%02d\n",$da,$data_b[0],$data_b[1],$data_b[2]);
printf("%s%02d%02d\n", $da,$data_b[1],$data_b[2]);

printf("%d%d%d%s\n",$data_b[0],$data_b[1],$data_b[2],$da);
printf("%d%s\n",$data_b[0],$da);
printf("%d%d%s\n",$data_b[1],$data_b[2],$da);
printf("%s\n",$da);
printf("%04d%02d%02d%s\n",$data_b[0],$data_b[1],$data_b[2],$da);
printf("%02d%02d%s\n",$data_b[1],$data_b[2],$da);
}
# 以下を追加
#1.B.txtの出力
printf("%d%d%d\n",$data_b[0],$data_b[1],$data_b[2]);
printf("%d\n",$data_b[0]);
printf("%d%d\n",$data_b[1],$data_b[2]);
printf("%04d%02d%02d\n",$data_b[0],$data_b[1],$data_b[2]);
printf("%02d%02d\n",$data_b[1],$data_b[2]);
#2.A.txtの出力
printf("%s%s\n",$data_a[0],$data_a[1]);
printf("%s%s\n",$data_a[1],$data_a[2]);
printf("%s%s\n",$data_a[2],$data_a[0]);
printf("%s%s\n",$data_a[1],$data_a[0]);
printf("%s%s\n",$data_a[0],$data_a[2]);
printf("%s%s\n",$data_a[2],$data_a[1]);
-------------------------------------------
以下、実行結果です。
kato198636
kato1986
kato36
kato
kato19860306
kato0306
198636kato
1986kato
36kato
kato
19860306kato
0306kato
megumi198636
megumi1986
megumi36
megumi
megumi19860306
megumi0306
198636megumi
1986megumi
36megumi
megumi
19860306megumi
0306megumi
meguchan198636
meguchan1986
meguchan36
meguchan
meguchan19860306
meguchan0306
198636meguchan
1986meguchan
36meguchan
meguchan
19860306meguchan
0306meguchan
198636
1986
36
19860306
0306
katomegumi
megumimeguchan
meguchankato
megumikato
katomeguchan
meguchanmegumi
    • good
    • 0
この回答へのお礼

tatsu99さま

返信が大変遅れてしまい申し訳ありませんでした。
風邪を引いちゃいました・・・
先ほど頂いたプログラムを確認しました。
完璧です!
本当にありがとうございました!!!
感激です。
後ほどベストアンサーの登録をさせて頂きます。
本当に本当にありがとうございます!
tatsu99さま、季節の変わり目ですが何卒お体のほうご自愛くださいね!
めぐみ

お礼日時:2013/09/17 16:06

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