다음과 같은 명령으로 텍스트 파일의 출력을 지정하고 싶습니다.
- 연속해서 반복되는 문자를 모두 포함하는 모든 줄을 인쇄합니다.
- 같은 줄의 마지막 또는 마지막 두 문자를 제외하고 연속적으로 반복되는 모든 문자를 포함하는 모든 줄을 인쇄합니다.
- 같은 줄의 처음 또는 처음 두 문자를 제외하고 연속적으로 반복되는 모든 문자를 포함하는 모든 줄을 인쇄합니다.
예:
11122323 1112266 44778 223334456 6778811 845511 3357788
출력은
1112266 >>>>> All repeated characters.
44778 >>>>> All repeated except the last character.
223334456 >>> All repeated except the last two characters
6778811 >>>> All repeated except the first character.
845511 >>>> All repeated except the first two characters.
문자의 비연속적인 반복은 허용되지만 줄의 시작이나 끝에서 첫 번째 또는 두 번째 문자로만 가능합니다. 첫 번째 행은 연속적으로 반복되지 않으므로 제외됩니다 3
.
다음 명령을 시도했지만 연속되지 않은 반복 문자도 찾습니다.
awk '
{split ("", N) # delete N array
P = 1 # reset boolean L used for print decision
L = length
for (i=1; i<=L; i++) N[substr($0, i, 1)]+=((i<3)||(i>L-2))?2:1 # calculate char count; doubly weigh leading/trailing
for (n in N) if (N[n] < 2) {P = 0 # for non-duplicate chars: set print decision
break # and quit the for loop
}
}
P # print if non-duplicate chars exist only at margins
' file