0

我有一个格式如下的文本文件

 data: [      142] CPU 10 <v:0xffffffff3d4331bc> <p:0x004d38331bc> Nrml Read 4 bytes  0x2a72c08

我想提取v:和前面的两个十六进制值p:。结果我想要这样的输出

 ffffffff3d4331bc 004d38331bc

问题是分隔字符不能与cut命令一起正常工作。现在我用

 cut -d: -f3 data2.txt

但输出是0xffffffff3d4331bc> <p

我也不想要0x标题。

4

1 回答 1

3
 grep -oP '<[vp]:0x[0-9a-z]+' data.txt | sed 's/.\{5\}//'

正如@chepner在评论中所建议的那样,您可以使用积极的后视断言,这将减少对

 grep -oP '(?<=<[vp]:0x)[0-9a-z]+' data.txt | sed 'N;s/\n/ /'
于 2013-05-28T13:22:04.930 回答