텍스트에서 숫자 검색 [닫기]

텍스트에서 숫자 검색 [닫기]

특정 번호를 검색하려는 텍스트 파일이 있습니다. 텍스트 파일이 다음과 같다고 가정합니다.

asdg32dasdgdsa
dsagdssa11
adad 12345
dsaga

이제 길이가 5인 숫자를 검색하여 인쇄하고 싶습니다( 12345).

Linux에서 이 작업을 어떻게 수행할 수 있나요?

답변1

grep다음 명령을 찾고 있습니다 .

DESCRIPTION
   grep searches the named input FILEs for lines containing a match to the
   given PATTERN.  If no files are specified, or if the file “-” is given,
   grep  searches  standard  input.   By default, grep prints the matching
   lines.

따라서 숫자를 찾으려면 12345다음을 실행하십시오.

$ grep 12345 file
adad 12345

그러면 일치하는 모든 줄이 인쇄됩니다 12345. 행의 일치하는 부분만 인쇄하려면 다음 -o플래그를 사용하십시오.

$ grep -o 12345 file
12345

길이가 5인 연속 숫자를 찾으려면 다음 중 하나를 사용할 수 있습니다.

$ grep -o '[0-9][0-9][0-9][0-9][0-9]' file
12345
$ grep -o '[0-9]\{5\}' file
12345
$ grep -Eo '[0-9]{5}' file 
12345
$ grep -Po '\d{5}' file 
12345

동일한 작업을 수행하되 5자리보다 긴 숫자를 무시하려면 다음을 사용합니다.

$ grep -Po '[^\d]\K[0-9]{5}[^\d]*' file
12345

답변2

grep -o '[0-9][0-9][0-9][0-9][0-9]' file

답변3

POSIX적으로:

tr -cs '[:digit:]' '[\n*]' <file | grep '^.\{5\}$'

관련 정보