在Linux服务器上,我们收到一个文件,其中包含:
1. the printer IP address
2. the Text (XML tags) to be sent to that printer using FTP
我需要一个bash shell脚本,该脚本可以分割文件并通过FTP将文本发送到相应的IP地址打印机。
文件可以包含多个IP地址,后跟文本
在所示示例中:
首先是IP地址,以分隔符终止。 (可以更改或删除)。
然后,我们将文本发送到打印机,以</labels>
结尾
第二个IP地址和要发送到该IP地址的文本。
第三个IP地址和要发送到该IP地址的文本。
12.123.12.123|
<?xml version="1.0" standalone="no"?>
<!DOCTYPE labels SYSTEM "label.dtd">
<labels _FORMAT="E:HOTDOC.ZPL" _QUANTITY="1" _PRINTERNAME="Printer 1" _JOBNAME="LBL101">
<label>
<variable name="TEXT1">30959</variable>
</label>
<label>
<variable name="TEXT1">30960</variable>
</label>
<label>
<variable name="TEXT1">30961</variable>
</label>
</labels>
12.567.12.123|
<?xml version="1.0" standalone="no"?>
<!DOCTYPE labels SYSTEM "label.dtd">
<labels _FORMAT="E:HOTDOC.ZPL" _QUANTITY="1" _PRINTERNAME="Printer 1" _JOBNAME="LBL101">
<label>
<variable name="TEXT1">30962</variable>
</label>
<label>
<variable name="TEXT1">30963</variable>
</label>
</labels>
12.890.12.123|
<?xml version="1.0" standalone="no"?>
<!DOCTYPE labels SYSTEM "label.dtd">
<labels _FORMAT="E:HOTDOC.ZPL" _QUANTITY="1" _PRINTERNAME="Printer 1" _JOBNAME="LBL101">
<label>
<variable name="TEXT1">309625</variable>
</label>
</labels>
过去,我们有一个IP地址文件(printer.txt)和一个单独的文本文件(xmlfile.txt)。我正在使用以下脚本。但是现在,我们有几台打印机,因此需要将IP添加到文件中以定义目标。
#!/bin/sh
HOST='12.123.12.212'
USER='anonymous'
FILE='/a01/folder/xmlfile.txt'
ftp -n $(cat /a01/folder/printer.txt) /a01/folder/ <<END_SCRIPT
quote USER $USER
put $FILE
quit
END_SCRIPT
exit 0
答案 0 :(得分:0)
仅使用XML保留每个文档的单独文件。
创建一个文本文件表,该表是匹配文件的地址和名称。
12.123.12.123|/path/to/file1
12.567.12.123|/path/to/file2
然后,您的脚本可以读取表并知道每个数据文件在哪里,并且可以读取数据文件而无需进行设计更改即可破坏XML完整性。