sed 및 awk를 사용하여 텍스트 일부 추출

sed 및 awk를 사용하여 텍스트 일부 추출

다음과 같은 텍스트가 있습니다. 목록을 어떻게 추출할 수 있나요?

[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

grepPCR 로

Expr1) 나머지 라인 까지 추출하되 포함하지 않음

$ 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

관련 정보