提取特定字符串模式之间的字符串

提取特定字符串模式之间的字符串

我有一个以太坊 我想从中提取位于特定字符串之间的事务哈希的日志文件发送(0x并且前后有很多行。

输入文件

I0623 10:56:00.025283 miner/worker.go:516] commit new work on block 1903 with 0 txs & 0 uncles. Took 621.171µs
I0623 10:56:00.025349 miner/unconfirmed.go:105] 

答案1

使用多个分隔符的解决方案awk

awk -F 'Tx\\(0x|)' '/Tx/ {print $2}' <your_file>

在哪里:

  • -F 'Tx\\(0x|)': 使用分隔符发送(0x
  • /Tx/:仅打印包含以下内容的行发射机
  • {print $2}:打印第二个元素

答案2

如果每行只有一个 Tx...:

sed -n 's/.*Tx(0x\(.*\)) to.*/\1/p' logfile > outfile

-n抑制不匹配行的输出的选项

相关内容