A B C D E
내가 값 과 8개의 장소를 가지고 있다고 가정해 봅시다 1 2 3 4 5 6 7 8
. 두 번, 세 번 반복하여 가능한 모든 조합을 인쇄하는 방법은 무엇입니까?
예:
1 2 3 4 5 6 7 8
_______________
A A B B C C D E
A B B C C D D E (and so on...)
A A A B B C D E
A B B B C C D E (and so on...)
어떤 조합이 어떤 조합인지는 중요하지 않습니다. 누락된 값이 없어야 합니다.AABBCCDD
(무엇이 E
빠졌는지)
답변1
zsh
//를 사용하는 ksh93
대략적인 방법은 bash
다음과 같습니다:
printf '%s\n' {A..E}{A..E}{A..E}{A..E}{A..E}{A..E}{A..E}{A..E} |
sed '/A/!d; /B/!d; /C/!d; /D/!d; /E/!d; /\(.\)\(.*\1\)\{3\}/d'
그중에서 우리는 zsh 스타일을 사용하여 {A..E}
에서 까지 5 8개의 조합을 모두 생성 하고 동일한 문자를 포함하지 않거나 포함하지 않거나 3개 이상의 조합을 삭제합니다.AAAAAAAA
EEEEEEEE
sed
A
B
C
D
E
문자 사이에 공백을 삽입하려면 코드 에 ;s/./ &/2g
(GNU sed
) 또는 ;s/./ &/g;s/ //
(any sed
)를 추가하세요 .sed