나는이더 리움 특정 문자열 사이에 있는 트랜잭션 해시를 추출하려는 로그 파일보내기(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
일치하지 않는 행의 출력을 억제하는 옵션