파일 [중복]에서 패턴 위의 줄을 반환합니다.

파일 [중복]에서 패턴 위의 줄을 반환합니다.

이 출력이 있습니다

v12:     "owner" : "cs1372",
v12:     "num-of-connections" : 1,
v12:     "owner" : "cq5838",
v5:     "owner" : "bb9886",
v5:     "owner" : "aq0903",
v5:     "owner" : "bj2468",
v5:     "owner" : "di3080",
v5:     "num-of-connections" : 1,

연결된 행 수보다 높은 행을 반환해야 합니다. 그래서 내가 원하는 출력은

v12:     "owner" : "cs1372",
v5:     "owner" : "di3080",

sed나 awk를 사용하여 이를 수행하는 쉬운 방법이 있습니까?

답변1

사용 awk:

$ awk '$2=="\"num-of-connections\""{ print prev } { prev=$0 }' file
v12:     "owner" : "cs1372",
v5:     "owner" : "di3080",

현재 레코드를 변수에 저장합니다 prev. 두 번째 필드가 동일하면 "num-of-connections"변수를 인쇄합니다 prev.

관련 정보