문제
파일 1이 있습니다
A,B,C
그리고 file2
D,E,F
나는 가려고 노력하고있다
AD, AE, AF, BD, BE, BF, CD, CE, CF
실패로
echo {`cat File1`}{`cat File2`}
기부
{A,B,C}{D,E,F}
ZSH/AWK의 문제를 어떻게 해결할 수 있습니까?
해결책
awk -F, '
NR==FNR {
# read lines from File1 into the array f1
f1[NR]=$0
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
File1이 포함 된 경우
A,B,C
1,2,3
그리고 file2에는 포함되어 있습니다
D,E,F
4,5,6
그런 다음 awk 스크립트 출력
AD, AE, AF, BD, BE, BF, CD, CE, CF
14, 15, 16, 24, 25, 26, 34, 35, 36
다른 팁
나는 zsh를 모른다. 여기 내가 Bash and 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\$@@"
그런 다음 출력은 다음과 같습니다.
AD, AE, AF, BD, BE, BF, CD, CE, CF
제휴하지 않습니다 StackOverflow