정말 미안해요... 뇌가 얼어붙어 이해할 수가 없어요. 저는 sed와 패턴 공간을 사용하고 있지만 패턴이 포함된 줄의 모든 항목을 계속 삭제합니다.
패턴이 포함된 첫 번째 행을 삭제한 다음 동일한 패턴이 포함된 다른 행을 삭제하고 싶습니다.
내가 작업 중인 목록에는 동일한 패턴을 포함하는 연속 행이 2개 이상 없습니다.
모드는 "쿼리"입니다
내 데이터는 다음과 같습니다.
Query: A ANNUAL SERVICE FEE
SourceField: EXP-ANNUAL: SourceTable: MASTER
Query: A ANNUAL SERVICE FEE
Query: A Edie ACTIVE LNS
SourceField: LOAN-NO: SourceTable: MASTER
Query: A Edie ACTIVE LNS
SourceField: LO: SourceTable: MASTER
이것이 내가 원하는 모습입니다:
Query: A ANNUAL SERVICE FEE
SourceField: EXP-ANNUAL: SourceTable: MASTER
Query: A Edie ACTIVE LNS
SourceField: LOAN-NO: SourceTable: MASTER
Query: A Edie ACTIVE LNS
SourceField: LO: SourceTable: MASTER
답변1
sed '/^Query/{N;/\nQuery/D;}' file
로 시작하는 줄에 Query
다음 줄을 패턴 공간에 추가합니다. 다음 줄이 다음으로 시작하면 Query
첫 번째 줄을 삭제하세요.
마지막 줄을 인쇄하지 않으려면(마지막 줄이 일치하는 경우 ^Query
):
sed -n '/^Query/{N;/\nQuery/D;};p' file