
다음과 같은 텍스트가 있습니다. 목록을 어떻게 추출할 수 있나요?
[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