반복되는 숫자 쌍으로 완전히 구성된 줄을 얻기 위해 파일을 필터링하는 방법은 무엇입니까?

반복되는 숫자 쌍으로 완전히 구성된 줄을 얻기 위해 파일을 필터링하는 방법은 무엇입니까?

다음으로 시작하는 숫자가 있는 파일이 있습니다.

00000000
00000001
00000002
.
.
.
99999999

출력이 다음과 같도록 bash에서 필터링하고 싶습니다.

00000000
00000011
00000022
.
.
11223344
11223355
.
.
99999977
99999988
99999999

답변1

당신이 실제로 원하는 것 같습니다필터특히, 반복되는 문자 쌍 또는 (더 구체적으로) 숫자로 구성된 행만 출력하려면 파일을 정렬하는 것이 아니라 파일을 삭제합니다. 예를 들어 를 사용하면 grep다음과 같습니다.

grep -Ex '((.)\2)+' yourfile

또는 외부 그룹 캡처를 피하기 위해 PCRE 모드를 사용합니다.

grep -Px '(?:(\d)\1)+' yourfile

답변2

모든 숫자가 8자리이고 nums.txt라는 파일에 있다고 가정하면 substr의 awk 문자열 함수를 사용하여 마지막 두 문자가 동일한 모든 줄을 필터링할 수 있습니다.

awk '{ if(substr($1, 7, 1)==substr($1, 8, 1)) print $1}' nums.txt

그러면 다음을 얻을 수 있습니다:

    00000000
    00000011
    00000022
    00000055

....

관련 정보