다음으로 시작하는 숫자가 있는 파일이 있습니다.
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
....