0

このような形式のテキストファイルがあります

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

v:との前にある 2 つの 16 進数値を抽出したいと思います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 に答える