Comment puis-je fusionner deux fichiers?

J’ai deux fichiers

Fichier 1:

7118 7457 7591 7539 8001 

Fichier 2:

 5003 5008 5011 5026 5028 5029 5031 

Sortie dont j’ai besoin

 7118,5003 7457,5003 7591,5003 7539,5003 8001,5003 7118,5008 7457,5008 7591,5008 7539,5008 8001,5008 

Etc…..

 awk 'FNR==NR{a[$0];next}{ for(i in a) print i,$0 }' OFS="," file file1 

Et une fonction bash:

 function cross() { exec 3<$2 while read -u 3 a ; do exec 4<$1 while read -u 4 b ; do echo $b,$a done done 3<&- 4<&- } 

Je vais utiliser un script perl pour cela.

 #!/usr/bin/perl use ssortingct; my @file1 = loadf("file1.txt"); my @file2 = loadf("file2.txt"); foreach my $line2 (@file2) { $line2 =~ s/^\s+//; $line2 =~ s/\s+$//; for (my $i = 0; $i < @file1; $i++) { $file1[$i] =~ s/^\s+//; $file1[$i] =~ s/\s+$//; #do the output print $file1[$i] . "," . $line2 . "\n"; } } sub loadf($) { my @file = ( ); open(FILE, $_[0] . "\n") or die("[-] Couldn't Open " . $_[0] . "\n"); @file = ; close(FILE); return @file; } 
 cat file1 | (exec 3< file2; while read A && read B <&3; do echo "$A,$B"; done)