특정 문자열 패턴 사이의 문자열 추출

특정 문자열 패턴 사이의 문자열 추출

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

관련 정보