我有一个以太坊 我想从中提取位于特定字符串之间的事务哈希的日志文件发送(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
抑制不匹配行的输出的选项