在linux命令行

时间:2017-02-23 19:52:28

标签: linux bash shell sed

我正在尝试写一个班轮,但无法弄清楚我做错了什么。我正在尝试使用以下命令:

cat testadds | cut -f 1 -d "," | xargs -ifoo /bin/bash -c "cat testadds | cut -f 2 -d \",\" | xargs --replace=addr /bin/bash -c \"cat testadds | cut -f 3 -d \",\" | xargs --replace=num /bin/bash -c \"cat testmdl | sed 's/DUMMY/foo/g' | sed 's/IP1/addr/g' | sed 's/IP2/num/g'\"\""

我的输出没有任何结果,我的testadds文件设置如下:

dev,IP1,IP2

当我只用2 xargs执行此操作时,它工作正常,但是当我添加第3个和最后xargs时,它不提供任何输出。我想知道在对文件进行处理时可以使用xargs的次数是否有限制。

我猜想预期的输入来自一个有多个设备的文件。输入将是testdevice,1.1.1.1,2.2.2.2

预期的输出是:
-deviceSystemSoftware'设备:testdevice''6500 7-SLOT OPTICAL SW:1021'
-deviceCname'device:testdevice''PRIORITY SLA - identifier - testdevice' -deviceDateAdded'设备:testdevice''2017-02-24'
-deviceNotes'设备:testdevice''BTWB100269 - testdevice' -hier'nib:opr | 0 group:Openreach group:TSO'
-hier'nib:opr | 0 group:Openreach group:TSO group:Ciena'
-hierUnique'nib:opr | 0 group:Openreach group:TSO group:Ciena device:testdevice'

-createEntity'service:snmp-trap-handling {device:testdevice} CA | 0 [+ opr-ciena-6500-alarms | + Nocol]'
-createEntity'服务:配置跟踪{device:testdevice} opr | 0 [ciena6500]'

-createEntity'界面:testdevice | COLAN-1-X'
-entityDescription'界面:testdevice | COLAN-1-X''COLAN-1-X'
-createEntity'地址:testdevice | COLAN-1-X | 1.1.1.1'
-devicePrimaryInterface'device:testdevice''interface:testdevice | COLAN-1-X'

-deleteEntity'地址:testdevice | mgmt | 1.1.1.1'
-deleteEntity'服务:ippingmon {interface:testdevice | mgmt} opr | 0 []'
-deleteEntity'界面:testdevice | mgmt'
-createEntity'界面:testdevice | SHELFIP'
-entityDescription'界面:testdevice | SHELFIP''SHELFIP'
-createEntity'地址:testdevice | SHELFIP | 2.2.2.2'

希望这会有所帮助

我想要完成的是修改文件以将它们显示为预期输出。这是将它添加到我的监控系统。对不起,这是我第一次这样做,所以我为任何缺乏信息而道歉。

0 个答案:

没有答案