답변:
grep -E
확장 정규 표현식 구문에 액세스하는 데 사용할 수 있습니다 ( egrep 와 동일 )
아래 내용으로 테스트 파일을 만들었습니다.
>cat testfile
this is some text
with some random lines
again some text
ok now going for numbers (:32)
ok now going for numbers (:12)
ok now going for numbers (:132)
ok now going for numbers (:1324)
이제 당신이 사용할 수있는 텍스트에서 숫자를 grep하기 위해
>grep -Eo '[0-9]{1,4}' testfile
32
12
132
1324
출력됩니다.
여기서 "-o" 는 줄의 전체 내용이 아니라 줄의 일치하는 세그먼트 만 출력하는 데 사용됩니다.
구불 구불 한 괄호 (예 : {및})는 일치하는 인스턴스 수를 나타냅니다. {1,4}는 이전 문자 또는 문자 클래스가 최소한 한 번, 그러나 네 번 이상 발생하지 않아야합니다.
도움이 되었기를 바랍니다
grep -Eo '[0-9]{1,}' testfile
POSIX 표준[:digit:]
의 섹션 9.3.5에 지정된 RE 대괄호 표현식 을 플래그 와 함께 사용하여 일치하는 "단어"만 인쇄 할 수 있습니다.-o
$ grep -o '[[:digit:]]*' <<< $'No number in this line\nbut 123 here'
123
curl을 사용하여 로컬 또는 원격으로 파일에 액세스 한 다음 줄 바꿈 (:)으로 줄을 그립니다. 그런 다음 잘라 내고 파일에 씁니다.
허용 된 대답은 파일의 이전 줄에 숫자가있을 수 있다는 것을 무시하고 예제 데이터에서 작동하지만 파일이 원격이라면 어떻게됩니까?
노동 조합 지부
curl file:///home/$USER/Public/input.txt | grep -o '(:.*)' | cut -d ":" -f 2 | cut -d ")" -f 1 > output.txt
이 예 output.txt
에서는 현재 폴더의 내용을 덮어 쓰고 input.txt
공용 폴더에서 액세스 하고 있습니다.
먼
curl https://yoursite.com/Public/input.txt | grep -o '(:.*)' | cut -d ":" -f 2 | cut -d ")" -f 1 > output.txt
이 예 output.txt
에서는 현재 폴더의 내용을 덮어 쓰고 input.txt
에서 액세스 하고 https://yoursite.com/Public/
있습니다.
curl
단순 cat
할 때 왜 사용 하는가?
man grep