回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我得到了一个python代码,如果行在反转时相似,它会删除行。例如,如果我的文档包含:</p>
<pre><code>1,2 3,4
5,6 7,8
2,1 4,3
5,6 8,7
</code></pre>
<p>执行脚本后,输出为</p>
<pre><code>5,6 7,8
2,1 4,3
5,6 8,7
</code></pre>
<p>假设一行的第一列为1,2,第二列为7,8,那么,如果另一行的每列包含反转值2,1和8,7,则视为反转。你知道吗</p>
<p>但是,我注意到脚本没有保持行的顺序。排队对我来说很重要。另外,我需要删除第二个类似的反向行,而不是第一个一个。那个代码是</p>
<pre><code>import sys
with open(sys.argv[1]) as inf:
keys = set()
for line in inf:
ports, ips = line.split()
port1, port2 = ports.split(",")
ip1, ip2 = ips.split(",")
if ip1 < ip2:
keys.add((ip1, port1, ip2, port2))
else:
keys.add((ip2, port2, ip1, port1))
with open('results', 'w') as outf:
for result in keys:
outf.write("{1},{3}\t{0},{2}\n".format(*result))
</code></pre>
<p>有什么想法吗?如果我们能在bash脚本上实现它,有什么建议吗?你知道吗</p>
<p>谢谢</p>