我正在写一个剧本,我陷入了一个阶段。我想根据列对/uniq进行排序,请在下面提供帮助

229984:usto:150:usto-pdbx-sql13.amgen.com:usto-inf-srvr-W2008phys-prd-w
229986:usto:156:usto-pdbx-sql13.amgen.com:usto-inf-srvr-W2008phys-prd-w
230187:usto:50:usto-tsvc-smp03.amgen.com:usto-inf-srvr-W2008phys-tst-r
230713:usto:58:USTO271389-s.amgen.com:usto-inf-silv-EDM_windows-prd-u
229814:usto:58:usto-sec-iss-am.amgen.com:usto-inf-silv-security_app-prd-t
229618:usto:59:usto-pdpx-me020.amgen.com:usto-dev-brnz-matlabDev_app_NFS-prd-r
229255:usto:84:usto-dsvc-emfb1:usto-idm-silv-arcot_windows-dev-f

在上面,我想根据第3栏和第4栏删除整个行。如果3和4条目中的任何行重复,我想删除相同的行。
请提出建议谢谢。

最佳答案

我只能想到丑陋的bash黑客,为什么不换上一些漂亮的python呢?

seen_col_3 = []
seen_col_4 = []

for line in s.split():
  cols = line.split(":")
  if cols[3] in seen_col_3 and cols[4] in seen_col_4:
    continue
  seen_col_3.append(cols[3])
  seen_col_4.append(cols[4])
  print line

现在您只需要将文件读入s

09-27 23:33