这是一个文件。我想删除补丁名称中的重复
[ppande@server-1 —]$egrep 'Patch[0-9].*.*:' content1
Patch1001 : snmp fixl.org
Patch1002 : dhcp tmp fix
Patch1003 : qemu-img-9.0.58
Patch001 : snmp fixl.org
Patch002 : dhcp installation
Patch003 : qemu
Patch004 : snmp fixl.org
我使用了'sort -u',但是补丁的顺序在这里改变了。我需要的是没有重复且顺序保持不变的输出,或者换句话说,如果有重复,则不得显示第二次/最后一次出现。
[ppande@server-1 —]$egrep 'Patch[0-9].*.*:' content1 | sort -u -k3
Patch002 : dhcp installation
Patch1002 : dhcp tmp fix
Patch003 : qemu
Patch1003 : qemu-img-0.0.58
Patch1001 : snmp fixl.org
Patch001 : snmp fixl.org
所需的输出:
Patch1001 : snmp fixl.org
Patch1002 : dhcp tmp fix
Patch1003 : qemu-img-9.0.58
Patch002 : dhcp installation
Patch003 : qemu
答案 0 :(得分:1)
您可以在单个awk命令中执行该操作。
awk -F ':\\s*' '/^Patch[0-9]+\s*:/ && !a[$2]++' content1
答案 1 :(得分:1)
编辑: :由于oguzismail在我之前添加了相同的解决方案几秒钟,因此,如果可以,请立即添加perl解决方案。
keybd_event VK_Alt, 0, 0, 0
keybd_event VK_A, 0, 0, 0
keybd_event VK_A, 0, KEYEVENTF_KEYUP, 0
keybd_event VK_Alt, 0, KEYEVENTF_KEYUP, 0
keybd_event VK_C, 0, 0, 0
keybd_event VK_C, 0, KEYEVENTF_KEYUP, 0
Worksheets(1).Rows(9 & ":" & Worksheets(1).Rows.Count).Delete
能否请您尝试以下。您无需在此处与perl -aF': ' -lne 'print if ! $seen{$F[1]}++' Input_file
一起使用多个命令。
awk