특정 번호를 검색하려는 텍스트 파일이 있습니다. 텍스트 파일이 다음과 같다고 가정합니다.
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\}$'