【问题标题】:Unique entry set in the first column of all csv files under directory [duplicate]在目录下所有csv文件的第一列中设置唯一条目[重复]
【发布时间】:2015-06-11 00:25:59
【问题描述】:

我在目录下有一个逗号分隔文件的列表。没有标题,不幸的是它们甚至不是每行的相同长度。

我想在所有文件的第一列中找到唯一的条目。

在 shell 编程中最快的方法是什么?

awk -F "," '{print $1}' *.txt | uniq

似乎只获取每个文件的 uniq 条目。我想要所有文件。

【问题讨论】:

    标签: bash shell awk tcsh


    【解决方案1】:

    Shortest 仍在使用 awk(这将打印该行)

    awk -F, '!a[$1]++' *.txt
    

    只获取第一个字段

    awk -F, '!a[$1]++ {print $1}' *.txt
    

    【讨论】:

    • 它不打印单个元素,而是在我的机器上打印整行(GNU Awk 3.1.5)。你可能是说这个awk -F, '!a[$1]++ {print $1}' *.txt
    • @chatraed 是的,默认是打印行,需要添加{print $1} 才能获取第一个字段。
    • 谢谢。但是为什么我的脚本不起作用呢? awk -F "," '{print $1}' *.txt | uniq
    • @CodeNoob uniq 仅适用于排序列表,重复项必须是连续的。需要在 awk 和 uniq 之间插入排序。
    猜你喜欢
    • 2018-11-20
    • 2014-08-24
    • 2013-03-24
    • 1970-01-01
    • 2016-12-29
    • 2014-04-15
    • 2012-11-23
    相关资源
    最近更新 更多