스크립트는 가치 추출에 도움이 됩니다.

스크립트는 가치 추출에 도움이 됩니다.

작업하려는 다음 텍스트 파일이 있습니다

add_journal_volume group="RPCG_VLS_PSALTUXP201" copy="TW_PROD_VLS" uid="60,06,01,60,01,d0,40,00,37,1e,85,5e,17,9c,ea,11" uid_hash="0xfd81565b74f160c3"  -f;
add_replication_volume group="RPCG_VLS_PSALTUXP201" copy="VNX057_CRR_PSALTUXP201" replication_set="RSet0" uid="60,06,01,60,0e,60,3c,00,16,f5,56,7f,02,d8,e8,11" uid_hash="0xd7c77496f2520fbc"  -f;
add_replication_volume group="RPCG_VLS_PSALTUXP201" copy="VNX057_CRR_PSALTUXP201" replication_set="RSet1" uid="60,06,01,60,0e,60,3c,00,18,f5,56,7f,02,d8,e8,11" uid_hash="0x62d865f2be9ff409"  -f;

기본적으로 ";"을 사용하여 열로 구분된 텍스트로 반환하고 싶습니다.

RPCG_VLS_PSALTUXP201;TW_PROD_VLS;;60,06,01,60,01,d0,40,00,37,1e,85,5e,17,9c,ea,11
RPCG_VLS_PSALTUXP201;VNX057_CRR_PSALTUXP201;RSet0;60,06,01,60,0e,60,3c,00,16,f5,56,7f,02,d8,e8,11
RPCG_VLS_PSALTUXP201;VNX057_CRR_PSALTUXP201;RSet1;60,06,01,60,0e,60,3c,00,18,f5,56,7f,02,d8,e8,11

까다로운 부분은 해당 add_journal_volume행에 아무 것도 없다는 것입니다. replication_set따라서 이 경우에는 해당 행을 비워 두려고 합니다.

답변1

그리고 perl:

perl -lne 'my %f; $f{$1} = $2 while /(\w+)="(.*?)"/g;
           print join ";", @f{qw(group copy replication_set uid uid_hash)}'

관련 정보