Impossible de combiner des mots dans Files by Zsh / AWK
Question
j'ai File1
A,B,C
et Fichier2
D,E,F
J'essaie d'avoir
AD, AE, AF, BD, BE, BF, CD, CE, CF
sans succès par
echo {`cat File1`}{`cat File2`}
donnant
{A,B,C}{D,E,F}
Comment résoudre le problème avec Zsh / AWK?
La solution
awk -F, '
NR==FNR {
# read lines from File1 into the array f1
f1[NR]=A,B,C
1,2,3
next
}
{
# foreach line in File2
split(f1[FNR], words); # get words from corresponding line in File1
sep = ""
for (i in words) {
for (j=1; j<=NF; j++) {
printf("%s%s%s", sep, words[i], $j)
sep = ", "
}
}
print ""
}
' File1 File2
Si le fichier 1 contient
D,E,F
4,5,6
et le fichier 2 contient
AD, AE, AF, BD, BE, BF, CD, CE, CF
14, 15, 16, 24, 25, 26, 34, 35, 36
puis les sorties de script awk
<*>Autres conseils
Je ne sais pas zsh, voici ce que j'ai fait avec bash et sed:
echo "A,B,C" >a
echo "D,E,F" >b
for i in `cat a | sed -e "s@,@\n@g"`;
do for j in `cat b | sed -e "s@,@\n@g"`;
do echo -n "$i$j, ";
done ;
done | sed -e "s@,\s\$@@"
La sortie est alors:
AD, AE, AF, BD, BE, BF, CD, CE, CF
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow