逆にすると似ている場合に行を削除するpythonコードを取得しました。たとえば、次の内容を含むドキュメントがあるとします。
1,2 3,4
5,6 7,8
2,1 4,3
5,6 8,7
スクリプトを実行した後の出力は次のとおりです。
5,6 7,8
2,1 4,3
5,6 8,7
行の最初の列が 1,2 で、2 番目の列が 7,8 であるとします。別の行で、各列の値が 2,1 AND 8,7 と逆になっている場合、これは逆と見なされます。
ただし、スクリプトが行の順序を保持していないことに気付きました。行の順序は私にとって重要です。また、最初の行ではなく、2 番目の同様の逆行を削除する必要があります。コードは
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))
何か案は?bash スクリプトでそれを実行できるかどうか、何か提案はありますか?
ありがとう