![sed 및 awk를 사용하여 텍스트 일부 추출](https://linux55.com/image/93638/sed%20%EB%B0%8F%20awk%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%EC%9D%BC%EB%B6%80%20%EC%B6%94%EC%B6%9C.png)
다음과 같은 텍스트가 있습니다. 목록을 어떻게 추출할 수 있나요?
[83472, 8327489] 및 abcd: 32324?
[83472, 8327489]abcd: 32324Expr bla bla
[243fd]abcd: 4342Expr ieddsk
[2324, 34543, 8937423]abcd: 3232432423423Expr bla bla
답변1
sed -E 's/(\[[^]]*\]abcd:[[:blank:]]*[[:digit:]]*).*/\1/' file
그것은 이루어져야합니다.
샘플 출력
[83472, 8327489]abcd: 32324
[243fd]abcd: 4342
[2324, 34543, 8937423]abcd: 3232432423423
답변2
grep
PCR 로
Expr
1) 나머지 라인 까지 추출하되 포함하지 않음
$ grep -oP '.*(?=Expr)' file
[83472, 8327489]abcd: 32324
[243fd]abcd: 4342
[2324, 34543, 8937423]abcd: 3232432423423
2) 추출[...]abcd: numbers
$ grep -oP '\[[^]]*\]abcd:\s*\d+' file
[83472, 8327489]abcd: 32324
[243fd]abcd: 4342
[2324, 34543, 8937423]abcd: 3232432423423