다음 데이터가 포함된 파일이 있습니다.
나에게 필요한 것은 IMPU
사용 가능한 데이터 블록의 조합입니다. IMPI
이 데이터는 현재 약 25개의 거대한 파일에 존재하며 모든 파일에서 필터링되어야 합니다.
특정 블록에만 존재할 수도 있습니다 IMPU
.
다음 형식의 데이터가 필요합니다.
IMPU : XXXXXXXXXXXXX , IMPI : YYYYYYYYYYYYY , mscId : nakjsxabjk1nbjk23e32jked
dn: IMPU=tel:\csasacas,serv=IMS,assocId=csacsa,ou=associations,dc=cl
structuralObjectClass: csacascsa
objectClass: cascascsa
entryDS: cascasc
nodeId: ascasc
createTimestamp: csaccascas
modifyTimestamp: casc
IMPU: tel:+XXXXXXXXXXXXXXXXXXXXX
ImsIrs: cascasc
ImsSessBarrInd: cascas
ImsIsDefault: csac
ImsMaxNumberOfContacts: 1
mscID : nakjsxabjk1nbjk23e32jked
dn: serv=Identities,mscId=csac,ou=multiSCs,dc=cl
structuralObjectClass: casc
objectClass: csac
objectClass: sacas
entryDS: csaas
nodeId: csac
createTimestamp: sacsa
modifyTimestamp: ascsac
serv: cascas
CDC: csacsa
IMSI: scsacdascs
imsiMask: cacssacas
MSISDN: cdsacsacd
msisdnMask: csaascdas
IMPI: [email protected]
impiMask: aaaaaaaaaaaaaa
답변1
입력에 레이블-값 쌍이 있을 때마다 먼저 레이블(이름)을 값에 매핑하는 배열을 만든 다음 레이블이 마음에 드는 순서대로 원하는 값을 인쇄할 수 있는 것이 가장 좋습니다.
$ awk -F'[: +]+' -v OFS=' , ' '
{ sub(/@.*/,""); f[$1] = $1 " : " $NF }
END { print f["IMPU"], f["IMPI"], f["mscID"] }
' file
IMPU : XXXXXXXXXXXXXXXXXXXXX , IMPI : YYYYYYYYYYYYYYYYY , mscID : nakjsxabjk1nbjk23e32jked