두 개의 연속된 행에서 두 개의 패턴(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
이해합니다?