Bash 目录下所有csv文件的第一列中设置的唯一条目
我在目录下有一个逗号分隔的文件列表。没有标题,不幸的是,每行的标题长度都不相同 我想在所有文件的第一列中找到唯一的条目 在shell编程中,最快的方法是什么Bash 目录下所有csv文件的第一列中设置的唯一条目,bash,shell,awk,tcsh,Bash,Shell,Awk,Tcsh,我在目录下有一个逗号分隔的文件列表。没有标题,不幸的是,每行的标题长度都不相同 我想在所有文件的第一列中找到唯一的条目 在shell编程中,最快的方法是什么 awk -F "," '{print $1}' *.txt | uniq 似乎只获取每个文件的uniq条目。我需要所有文件。Shortest仍在使用awk(这将打印该行) 只得到第一个字段 awk -F, '!a[$1]++ {print $1}' *.txt 它不打印单个元素,而是在我的机器上打印整行(GNU Awk 3.1.5)。你
awk -F "," '{print $1}' *.txt | uniq
似乎只获取每个文件的uniq条目。我需要所有文件。Shortest仍在使用awk(这将打印该行) 只得到第一个字段
awk -F, '!a[$1]++ {print $1}' *.txt
它不打印单个元素,而是在我的机器上打印整行(GNU Awk 3.1.5)。你可能是指这个
awk-F'!一个[$1]+{print$1}'*.txt
@chatraed yes,默认是打印行,需要添加{print$1}
才能获得第一个字段。谢谢。但是为什么我的剧本不起作用呢awk-F“,“{print$1}”*.txt | uniq
@CodeNoob uniq仅适用于排序列表,重复项需要连续。需要在awk和uniq之间插入排序。
awk -F, '!a[$1]++ {print $1}' *.txt