shell之如何编写一个 shell 脚本来获取特定列的第一条记录

JeffreyZhao 阅读:303 2025-06-02 22:19:02 评论:0

以下是demo的小文件。有两列,我想编写一个 shell 脚本来获取每个名称的第一次出现。

--- input.txt ---

Name,Count 
Linux,2 
Unix,10 
Linux,10 
Unix,4 
Windows,6 

--- 想要的 output.txt ---

Name,Count 
Linux,2 
Unix,10 
Windows,6 

真正的 input.txt 要大得多(以 GB 为单位),所以可以扩展的东西会很棒。

另外,如果之前有人问过类似的问题,我深表歉意(我无法通过搜索找到解决方案)。

请您参考如下方法:

这样就可以了:

awk -F, '!seen[$1]++' input.txt 

-F, 将输入字段分隔符设置为逗号。这意味着每行中的 $1 是逗号之前的部分(名称、Linux、Unix 等)。 seen 是一个数组,它跟踪已经看到的 $1 的值。每次 $1 相同时,seen[$1] 都会递增。仅当 seen[$1] 为 0 时才打印该行,这仅在第一次看到新 key 时才为真。


标签:Shell
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号