Linux
使用 sed,awk 提取部分文本
我有以下文字,如何提取列表
$$ 83472, 8327489 $$和 abcd: 32324 ?
[83472, 8327489]abcd: 32324Expr bla bla [243fd]abcd: 4342Expr ieddsk [2324, 34543, 8937423]abcd: 3232432423423Expr bla bla
sed -E 's/(\[[^]]*\]abcd:[[:blank:]]*[[:digit:]]*).*/\1/' file
應該這樣做。
樣本輸出
[83472, 8327489]abcd: 32324 [243fd]abcd: 4342 [2324, 34543, 8937423]abcd: 3232432423423
與
grep
pcre1)提取最多但不包括
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