3 번 반복 할 수있는 같은 숫자를 표시하고 싶습니다. 내 명령 :
grep -E '[[:digit:]]{2,3}' file
모든 자릿수를 표시하지만 같은 자릿수를 하나 만들고 싶습니다.
입력:
11111 222 33
2223345678912345678901234
5
산출:
11111 222 33
2223345678912345678901234
5
나는 원한다 :
11111 222 33<-mark 222
2223345678912345678901234<-mark 222
다음 명령을 사용하여 3 개의 연속 된 숫자에 대한 파일을 grep 할 수 있음을 발견했습니다.
grep "\([0-9]\)\\1\\1" chatlog.txt
이것은 3 개의 연속 된 동일한 번호가있는 모든 행을 표시합니다. 는 \\1
이 경우 다수의 상기 제 1 그룹 일치 된 문자에 대응.
따라서 4 개의 동일한 숫자를 일치 시키려면 다음을 수행하십시오.
grep "\([0-9]\)\\1\\1\\1" chatlog.txt
보다 유연한 방식으로 정의 할 수 있습니다.
grep "\([0-9]\)\(\\1\)\{2,3\}"
위의 설명은 연속 된 3 개 또는 4 개의 동일한 번호와 일치합니다. 첫 번째 그룹은 첫 번째 숫자와 일치합니다. 그 후에 그 그룹을 두세 번 더 일치시킵니다.
그래서 주어진 입력 :
one: 1
two: 11
three: 111
four: 1111
다음 명령 :
grep -r "\([0-9]\)\(\\1\)\{2,3\}" test.txt
보고:
three: 111
four: 1111
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다