![연속된 두 행의 두 패턴을 확인하고 두 번째 패턴이 다음 행과 일치하면 첫 번째 행을 삭제하고 싶습니다. [닫기]](https://linux55.com/image/206821/%EC%97%B0%EC%86%8D%EB%90%9C%20%EB%91%90%20%ED%96%89%EC%9D%98%20%EB%91%90%20%ED%8C%A8%ED%84%B4%EC%9D%84%20%ED%99%95%EC%9D%B8%ED%95%98%EA%B3%A0%20%EB%91%90%20%EB%B2%88%EC%A7%B8%20%ED%8C%A8%ED%84%B4%EC%9D%B4%20%EB%8B%A4%EC%9D%8C%20%ED%96%89%EA%B3%BC%20%EC%9D%BC%EC%B9%98%ED%95%98%EB%A9%B4%20%EC%B2%AB%20%EB%B2%88%EC%A7%B8%20%ED%96%89%EC%9D%84%20%EC%82%AD%EC%A0%9C%ED%95%98%EA%B3%A0%20%EC%8B%B6%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
두 개의 연속된 행에서 두 개의 패턴(a1과 a2)을 확인하고 두 번째 패턴(a2)이 다음 행에서 일치하면 첫 번째 행(패턴 a1이 있는 행)을 삭제합니다.
입력하다
a1
b1
a1
a2
c1
c2
a1
b1
a1
a2
산출
a1
b1
a2
c1
c2
a1
b1
a2
답변1
를 사용하면 루프 sed
를 실행하여 다음과 같이 두 행을 함께 처리할 수 있습니다 N;P;D
.
sed 'N;s/a1\na2/a2/;P;D'
답변2
얼마나 멀리 갈 것인가?
awk '/a1/ {T = $0; getline; if (!/a2/) print T} 1' file
이해합니다?