Unix에서 awk의 cloumn 값을 기반으로 행을 열로 변환하는 방법

Unix에서 awk의 cloumn 값을 기반으로 행을 열로 변환하는 방법

나는 다음과 같은 데이터를 가지고 있습니다

dn: uid=032096,OU=고객,OU=직원,O=B2C
개체 범주: 상단
개체 범주: 사람
객체 클래스: organizationPerson
개체 등급: 사용자
개체 클래스: inetOrgPerson
개체 클래스: b2CCustomerPerson
CN:xxxxxxxxxxxxxxxxxx
고유 이름: uid=032096, OU=고객, OU=직원, O=B2C
인스턴스 유형: 4
생성 시간: 20110716120512.0Z
변경 시간: 20160407215618.0Z
USN 생성: 401180
uSN 변경: 88288899
이름: 032096
objectGUID::B2QAeBHw1UKwFJAkKi8SFg==
마지막으로 설정된 비밀번호: 130528418341644345
objectSid:: AQUAABjdlU4Ng+r7Fsx63e/RO0CWfrW51Nqjtg==
개체 범주: CN=사람, CN=아키텍처, CN=구성, CN={C3B2C981-53A4-46FE-A3
 08-1CA306D4D63D}
dSCorePropagationData:16010101000000.0Z
마지막 로그인 타임스탬프: 131045397771771108
b2CSmDisabledFlag: 0
b2CQA로그인 잠금: FALSE
b2C 비밀번호 찾기 24시간 시작 시간: 20140818092312.0Z
b2C 서픽스 코드: 00
b2CPwdNotSetup: 거짓
b2CSm 비밀번호 데이터: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxG0G+3K7wga6Fd 6ujkLxkBaUEeEzCc8DmyfaKJTVn+QHNCaCq19TVZLhXVAEzoJGrTwY=
b2CWorkAddrDecriminator: 미국
b2CQA로그인 시도: 0
이름: xxxxxx
제목: 00
사용자 번호: 032096
b2C 비밀번호 문제: 1xxxx
b2CBillingAddrDecriminator: 미국
b2CQA 마지막 로그인 시도 : 20140818132312.0Z
b2CDeliveryAddrDecriminator: 미국
b2C 비밀번호 답변: xxxxxxxxxxxxxxxxxxxxx
b2CHomeAddrDecriminator: 미국
SN:xxxxxxxxxxxxxxx
b2ClastProfileChange:20140818132312.0Z
b2C 이용자 개인정보 동의 : 20071220171228.0Z
이메일: xxxxxxxxxxxxxxxxxxxxx
b2CForgottenPasswordToken:xxxxxxxxxxxxxxx
dn: uid=03310326,OU=고객,OU=직원,O=B2C
개체 범주: 상단
개체 범주: 사람
객체 클래스: organizationPerson
개체 등급: 사용자
개체 클래스: inetOrgPerson
개체 클래스: b2CCustomerPerson
연락처: xxxxxx
나: xxxxx
세인트: GA
우편번호: xxxxxx
고유 이름: uid=03310326, OU=고객, OU=직원, O=B2C
인스턴스 유형: 4
생성 시간: 20120825012935.0Z
변경 시간: 20160122015941.0Z
생성된 uSN: 8104543
uSN 변경: 81191393
이름: 03310326
objectGUID:: a9Plz3ZBJE2XLjKzbi+jlA==
마지막으로 설정된 비밀번호: 129903317755454064
objectSid:: AQUAABjdlU4Ng+r7OCPkQBbSZU+kRb2ssiuk2w==
개체 범주: CN=사람, CN=아키텍처, CN=구성, CN={C3B2C981-53A4-46FE-A3
 08-1CA306D4D63D}
dSCorePropagationData:16010101000000.0Z
마지막 로그인 타임스탬프: 130979015771278217
b2CSmDisabledFlag: 0
b2CQA로그인 잠금: FALSE
선호하는 언어: EN
b2C 서픽스 코드: 02
b2CSm 비밀번호 데이터: xxxxxxxxxLZzGFgBmq2XPjD7qwXYAFl6e9G4jvQf6fMp306ksGE
EWEf9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
b2CWorkAddrDecriminator: 미국
중간 이름: A
b2CQA로그인 시도: 0
집 전화번호: xxxxxxxxxxxxxxxxxx
이름: xxxxxxxxxxxxxxx
제목: 01
모바일: 3610625
사용자 번호: 03310326
b2C 비밀번호 질문: xxxxxxxxxxxx
b2CBillingAddrDecriminator: 미국
b2CQA 마지막 로그인 시도 : 20130720213011.0Z
b2CDeliveryAddrDecriminator: 미국
b2C 비밀번호 질문 2: xxxxxxxxxxxx
b2CMobileAreaCode: xxxxxxx
b2CPasswordAnswer2: xxxxxxxxxxxx
b2C 비밀번호 답변: xxxxxxxxxx
b2CHomeAddrDecriminator: 미국
SN:xxxxxxxxxxxxxxxxxxxxx
거리 주소: xxxxxxxxxxxxxxx
b2ClastProfileChange:20130720213011.0Z
b2C 최근 비밀번호 변경 : 20120825012935.0Z
b2CHomeAddressZipCodeS4: xxxxxxxxxx
b2C 이용자 개인정보 동의 : 20120825012935.0Z
b2CHomeArea코드: xxxxxxxx
이메일: xxxxxxxxxxxx
b2CUser프로필 상태: 201
b2COriginatingAppID:xxxxxxxxxxxxxxx

이런 출력이 필요합니다

dn: uid=032096,OU=고객,OU=사람,O=B2C|objectClass: 상단|......
dn: uid=03310326,OU=고객,OU=사람,O=B2C|objectClass: 상단|....

답변1

예를 들어 다음을 사용하여 이 작업을 수행 할 수 있습니다 paste.

붙여넣기 -d'|' -s 파일 이름

답변2

이것을 달성해 보십시오 awk:

awk '/dn/{if(b)print b;b=$0;next}NF{b=b "|" $0}END{print b}' 파일 이름> file.out

관련 정보