我有下面的文字,如何提取列表
[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
1) 提取直到但不包括Expr
该行的其余部分
$ 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