我有csv文件的某些行字段如下:
Field1, Field2, Field3, SourceIP, DestinationIP
check1, check2, check3, 10.0.0.1,10.0.0.2
check3, check4, check5, 10.0.0.3,10.0.0.4
check5, check6, check7, 10.0.0.2,10.0.0.3
check8, check9, check10, 10.0.0.5,10.0.0.6
如果目标是使用destinationIP=nextSourceIP
搜索一行的IP对(SourceIP和DestinationIP)并打印到搜索行的下一个字段,我该如何在一行命令中执行?
继续搜索,直到不再有searchingIP
和destinationIP
输出如下:
Field1, Field2, Field3, SourceIP, DestinationIP
check1, check2, check3, 10.0.0.1,10.0.0.2,10.0.0.3,10.0.0.4
check3, check4, check5, 10.0.0.3,10.0.0.4
check5, check6, check7, 10.0.0.2,10.0.0.3,10.0.0.4
check8, check9, check10, 10.0.0.5,10.0.0.6
我的脑海里只有这样的事情:
perl -F',' -ane 'print join(",",$F[0],$F[1],$F[2],$F[3],$F[4]) if $F[3]==$F[4]' filetarget.csv