awk help

With the following sample extracted from a xml file:

<JOB_U client="1" name="job1" system="sys">
<XHEADER state="1">
<Title>test1</Title>
<Created><unknown/unknown></Created>
<Modified>none</Modified>
<LastUsed/>
<ArchiveKey1/>
<ArchiveKey2/>
<ExtRepDef>0</ExtRepDef>
<ExtRepAll>1</ExtRepAll>
<ExtRepNone>1</ExtRepNone>
</XHEADER>
<SYNCREF state="1">
<Syncs/>
</SYNCREF>
<ATTR_J state="1">
<StartType/>
<HostDst>U|H</HostDst>
<HostATTR_Type>U</HostATTR_Type>
<CodeName/>
<Login>login1</Login>
<IntAccount/>
<AutoDeactNo>1</AutoDeactNo>
<AutoDeact1ErrorFree>1</AutoDeact1ErrorFree>
<AutoDeactErrorFree>1</AutoDeactErrorFree>
<DeactWhen/>
<DeactDelay>1</DeactDelay>
<AutoDeactAlways>0</AutoDeactAlways>
<AttDialog>1</AttDialog>
<ActAtRun>0</ActAtRun>
<Consumption>1</Consumption>
<UC4Priority>1</UC4Priority>
<MaxParallel2>0</MaxParallel2>
<MpElse1>0</MpElse1>
<MpElse2>1</MpElse2>
<TZ/>
</ATTR_J>
<ATTR_U state="1">
<OutputDb>0</OutputDb>
<OutputDbErr>1</OutputDbErr>
<OutputFile>1</OutputFile>
<ShellScript>0</ShellScript>
<Command>1</Command>
<Priority>1</Priority>
<Shell>sh</Shell>
<ShellOptions/>
<Com/>
</ATTR_U>
<RUNTIME state="1">
<MaxRetCode>1</MaxRetCode>
<MrcExecute/>
<MrcElseE>1</MrcElseE>
<FcstStatus>1</FcstStatus>
<Ert>1</Ert>
<ErtMethodDef>0</ErtMethodDef>
<ErtMethodFix>1</ErtMethodFix>
<ErtFix>0</ErtFix>
<ErtDynMethod>0</ErtDynMethod>
<ErtMethodDyn>1</ErtMethodDyn>
<ErtCnt>1</ErtCnt>
<ErtCorr>1</ErtCorr>
<ErtIgn>1</ErtIgn>
<ErtIgnFlg>1</ErtIgnFlg>
<ErtMinCnt>1</ErtMinCnt>
<MrtMethodNone>0</MrtMethodNone>
<MrtMethodFix>1</MrtMethodFix>
<MrtFix>1</MrtFix>
<MrtMethodErt>1</MrtMethodErt>
<MrtErt>1</MrtErt>
<MrtMethodDate>1</MrtMethodDate>
<MrtDays>1</MrtDays>
<MrtTime>00:00</MrtTime>
<MrtTZ/>
<SrtMethodNone>0</SrtMethodNone>
<SrtMethodFix>1</SrtMethodFix>
<SrtFix>1</SrtFix>
<SrtMethodErt>0</SrtMethodErt>
<SrtErt>0</SrtErt>
<MrtCancel>0</MrtCancel>
<MrtExecute>0</MrtExecute>
<MrtExecuteObj/>
</RUNTIME>
<VALUE state="1">
<Values/>
<Mode>0</Mode>
</VALUE>
<PRE_S state="1" tidy="0">
<S><![CDATA[:INCLUDE I1
:INCLUDE I2]]></S>
</PRE_S>
<SCR state="1" tidy="0">
<MSCRIPT><![CDATA[:SET &my_var# = ("/home/login1")
cd &my_var# 
./run.sh file.csv]]></MSCRIPT>
</SCR>
<OUTPUTSCAN state="1">
<Inherit/>
<filterobjects/>
<HostFsc/>
<LoginFsc/>
</OUTPUTSCAN>
<POST_SCRIPT state="1" tidy="0">
<OSCRI><![CDATA[! *** comment.
! *** comment.
:ENDPROCESS]]></OSCRI>
</POST_SCRIPT>
<DOCU_Docu state="1" type="text">
<DOC/>
</DOCU_Docu>
</JOB_U>

Can someone help with a awk/sed/perl command in order to have the following output:

job1 login1 :SET &my_var# = ("/home/login1") ; cd &my_var# ; ./run.sh file.csv

Thanks in advance

Hi, try this:

awk '
/^JOB_U/{
  split($1,F,/"/)
  print F[4] OFS
}
/^Login/{
  print $2
}
/^MSCRIPT/{
  getline
  gsub(/\n/,"; ")
  print OFS $3
}
' RS=\< FS='[][>]*' ORS= infile
1 Like