我们有很多csv文件,并且其中包含的信息我需要获取该信息的文件。我可以手动执行此操作,但这需要花费很多时间,因此我想使用ksh之类的脚本来执行此操作。
我检查了csv文件及其所需的格式,并在每个字段中给了带数字的美元符号。但是我不知道如何制作脚本本身。
因此,这是csv文件,在此值之前,我已将美元符号和我需要的数字放在一起:
#QueueManager;Hostname;Default ServerConnectionChannel;Portnumber;
$1 TEST01;$2 this.is.a.hostname;$3 CPW.TEST.T1;$4 5704;
#Topic/Queue/Connection Factory JndiName;Type TCF/QCF/CF;ServerConnectionChannel;;
$5 jms/imit_pega_prpc_AchmeaCIPWQCF;QCF;CPW.ETST.T1;;
#JndiName;queueName;;;
$6 jms/imit_pega_prpc_AchmeaCIPW_ESBtoCPW_ReqQ;$7 ESB.DTG.CPW;;;
#JndiName;topicName;;;
#JNDI Activation Specification;Name Activation Specification;The JNDI name of the Destination Queue;Act.Spec ConnectionChannel;MaxPoolDepth
$8 eis/imit_pega_prpc_AchmeaCIPWQAS;imit_pega_prpc_AchmeaCIPWQAS;$9
此模板应使用带有数字的美元符号的字段填充:
<jmsQueueConnectionFactory jndiName="$5" connectionManagerRef="ConMgr6">
<properties.wmqJms
transportType="CLIENT"
hostName="$2"
port="$4"
channel="$3"
queueManager="$1"/>
</jmsQueueConnectionFactory>
<connectionManager id="ConMgr6" maxPoolSize="2"/>
<jmsQueue id="$6" jndiName="$6">
<properties.wmqJms
baseQueueName="$7"
baseQueueManagerName="$1"/>
</jmsQueue>
<jmsActivationSpec id="$8">
<properties.wmqJms
transportType="CLIENT"
destinationRef="$9"
destinationType="javax.jms.Queue"
hostName="$4"
port="$5"
channel="$3"
queueManager="$1"/>
</jmsActivationSpec>
还要注意,csv文件中可能有一个jmsQueueConnectionFactory,jmsQueue或jmsActivationSpec多个条目,因此也需要添加这些条目。
我已经使用此选项来过滤以#开头的行:
sed '/^#/' filename.csv > new.txt
但是现在剩下的,我该如何填写模板?