파일에서 특정 줄과 주변 줄을 삭제하는 방법은 무엇입니까? [복사]

파일에서 특정 줄과 주변 줄을 삭제하는 방법은 무엇입니까? [복사]

tcpdump 파일이 있습니다.

특정 패킷을 삭제하고 싶습니다. 가지고 있기 때문에 쉽게 발견할 수 있습니다.

0x0000: a6a6 a6a6 a6a6 a6a6 ........

데이터의 첫 번째 행으로

전체 패킷은 다음과 같습니다(비교하다) 좋다:

16:24:46.132673 00:35:1a:71:91:37 (oui Unknown) > 05:05:05:c5:05:05 (oui Unknown), ethertype Unknown (0x88be), length 60: 
    0x0000:  a6a6 a6a6 a6a6 a6a6 0101 2400 00b4 b83e
    0x0010:  931f 00be 7c80 545a 0202 0000 0000 00a5
    0x0020:  a5a5 a500 0000 0000 0000 0000 0000

그래서 제가 하고 싶은 말은 이렇습니다.

"이 패턴이 포함된 줄, 패턴 앞의 줄, 패턴 뒤의 두 줄을 삭제하세요."

sed, awk, grep 모두 괜찮습니다.예를 들어

$ sed -i 'magic' file

마법을 대체할 아이디어가 있나요?

답변1

결과는 'vim을 사용하세요', 자세한 내용은 다음과 같습니다.

역방향으로 grep하고 "이전" 및 "이후" 줄을 ​​제외하는 방법

$ vim -Nes "+g/a6a6\ a6a6/.-1,.+2d" '+w !tee' '+q!' file >newfile

관련 정보