XML의 여러 MSG-ID를 동시에 변환하는 방법은 무엇입니까? [폐쇄]

XML의 여러 MSG-ID를 동시에 변환하는 방법은 무엇입니까? [폐쇄]

MSG-ID(데이터베이스에 있는 MSG-ID)를 XML 파일로 변환하는 스크립트가 있습니다.

다음은 MSID를 XML로 변환하는 예입니다.

getDXML xxxxxMSGIDxxxxxx > filename.xml 

이제 나는 40개가 넘는 MSG-ID를 가지고 있으며 가능하다면 그것들을 모두 한 번에 다른 이름으로 변환하고 싶습니다.

이건 그것의 일부야

<?xml version="1.0" encoding="UTF-8"?>
<message schemaLocation="http://postfinance.ch/deva/message BANCS_DEVA_Message.xsd">
    <MessageHeader>
        <MandantID>001001</MandantID>
        <MessageID>**201711221731-A_DEVA_ADHCORDNTF_AA-10500879**</MessageID>
        <Sender>BOMC</Sender>
        <SenderPlattform>T</SenderPlattform>
        <MessageType>00761</MessageType>
        <Receiver>DEVA</Receiver>
        <CommPattern>FF</CommPattern>
        <Prioritaet>normal</Prioritaet>
    </MessageHeader>
    <sendung>
        <ProcessingHeader>

답변1

먼저 템플릿을 만듭니다.

cat >template.notxml <<'X'
<?xml version="1.0" encoding="UTF-8"?>
<message schemaLocation="http://postfinance.ch/deva/message BANCS_DEVA_Message.xsd">
    <MessageHeader>
        <MandantID>001001</MandantID>
        <MessageID>#MESSAGEID#</MessageID>
        <Sender>BOMC</Sender>
        <SenderPlattform>T</SenderPlattform>
        <MessageType>00761</MessageType>
        <Receiver>DEVA</Receiver>
        <CommPattern>FF</CommPattern>
        <Prioritaet>normal</Prioritaet>
    </MessageHeader>
    <sendung>
        <ProcessingHeader>
X

이제 파일을 만듭니다. 귀하의 목록에 일련의 메시지 ID가 있다고 가정합니다. 실제 세부정보가 없으면 메시지 ID에 문자, 숫자, 하이픈 및 밑줄( A-Z, a-z, 0-9, -, _)만 포함되어 있다고 가정합니다. 우리는 이것을 목록이라고 부릅니다 ids.list.

while IFS= read -r messageid
do
    sed "s/#MESSAGEID#/$messageid/g" template.notxml > "$messageid.notxml"
done < ids.list

관련 정보