![파일에서 특정 줄과 주변 줄을 삭제하는 방법은 무엇입니까? [복사]](https://linux55.com/image/10142/%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%ED%8A%B9%EC%A0%95%20%EC%A4%84%EA%B3%BC%20%EC%A3%BC%EB%B3%80%20%EC%A4%84%EC%9D%84%20%EC%82%AD%EC%A0%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
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