【发布时间】:2012-09-12 03:55:45
【问题描述】:
查找 UNIX 脚本命令(例如 awk、sed 或 sort)以查看此列表根据第 1、第 2 和第 3 列确定重复项,然后使用第 4 列确定哪个是最高版本。然后在最后一列标记它。
已经使用以下命令完成了我所有的排序和重复删除操作:
cat orig.txt |sort -t\| -k3 |uniq -u -d > list.uni
sort -t'|' -k 1,3 -k 4,4n list.uni > list.txt
我们将调用 list.txt 的零件名称示例列表
cat list.txt
M86-STD|LIB DRAWING|0186-528013|2| |
M86-STD|LIB DRAWING|0186-528013|3|B|
M86-STD|LIB DRAWING|0186-528013|4|C|
M86-STD|LIB DRAWING|0186-528013|5|D|
M86_STD|LIB ASSEMBLY|0186-528013|3| |
M86_STD|LIB ASSEMBLY|0186-528013|4|B|
M86_STD|LIB ASSEMBLY|0186-528013|5|D|
结果将如下所示:
M86-STD|LIB DRAWING|0186-528013|2| |
M86-STD|LIB DRAWING|0186-528013|3|B|
M86-STD|LIB DRAWING|0186-528013|4|C|
M86-STD|LIB DRAWING|0186-528013|5|D|Highestver
M86_STD|LIB ASSEMBLY|0186-528013|3| |
M86_STD|LIB ASSEMBLY|0186-528013|4|B|
M86_STD|LIB ASSEMBLY|0186-528013|5|D|Highestver
谢谢
【问题讨论】:
-
希望您同意我的重新格式化。在编辑工具上使用 {} 将块保持在一起。如果这些不合适,您可以通过单击我的名字附近的“编辑”标签并找到撤消标签来回滚编辑。祝你好运
-
只是想知道你的命令,给
uniq的标志有什么意义?没有标志的简单uniq不会达到相同的结果吗?以及为什么按版本按降序顺序排序的结果,你在哪里告诉sort这样做的?逆序不应该是4,4rn吗? -
是的,你是对的,我正在修改我的代码,在这个问题中更新了它,但没有更新列表。我更新了这个以反映列表的正确降序
-
你也是正确的,uniq 语句可以在没有标志的情况下工作。我将它们从我的原始代码中删除。
标签: unix sorting duplicates