지정된 줄만 인쇄하는 방법은 무엇입니까?

지정된 줄만 인쇄하는 방법은 무엇입니까?

다음과 같은 명령으로 텍스트 파일의 출력을 지정하고 싶습니다.

  1. 연속해서 반복되는 문자를 모두 포함하는 모든 줄을 인쇄합니다.
  2. 같은 줄의 마지막 또는 마지막 두 문자를 제외하고 연속적으로 반복되는 모든 문자를 포함하는 모든 줄을 인쇄합니다.
  3. 같은 줄의 처음 또는 처음 두 문자를 제외하고 연속적으로 반복되는 모든 문자를 포함하는 모든 줄을 인쇄합니다.

예:

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

관련 정보