Linux 是否有办法仅删除以下重复项?

Linux 是否有办法仅删除以下重复项?,linux,shell,Linux,Shell,我有一个包含以下列的CSV输入: 1,zzzz,xxxx, 1,xxxx,xyxy, 2,xxxx,xxxx, 3,yyyy,xxxx, 3,xxxx,yyyy, 3,xxxx,zzzz, 1,ffff,xxxx, 1,aaaa,xxxx, 我需要丢弃第一个字段与前一行匹配的行: 1,zzzz,xxxx, 2,xxxx,xxxx, 3,yyyy,xxxx, 1,ffff,xxxx, 我单独尝试了排序| uniq,但没有成功,因为除了第一个字段(数字)之外,所有行都不同。使用awk而不是uni

我有一个包含以下列的CSV输入:

1,zzzz,xxxx,
1,xxxx,xyxy,
2,xxxx,xxxx,
3,yyyy,xxxx,
3,xxxx,yyyy,
3,xxxx,zzzz,
1,ffff,xxxx,
1,aaaa,xxxx,
我需要丢弃第一个字段与前一行匹配的行:

1,zzzz,xxxx,
2,xxxx,xxxx,
3,yyyy,xxxx,
1,ffff,xxxx,

我单独尝试了
排序| uniq
,但没有成功,因为除了第一个字段(数字)之外,所有行都不同。

使用
awk
而不是
uniq

awk -F, '$1 != last { last=$1; print }'

-F,
将字段分隔符设置为逗号
$1
是第一个字段的内容,因此每当第一个字段更改时,它都会打印该行。

使用uniq--check chars=N获得所需的输出;
uniq
将只检查行中指定数量的字符,由于输入未排序,这将允许字符稍后出现在列表中。

您是否尝试过
uniq
?很抱歉,我编辑了问题以更好地解释情况,仅使用uniq,我将获得所有信息,因为每行的某些部分都是唯一的,因此即使第一部分重复,也会使每行都是唯一的。我使用
awk
发布了一个新答案。您的解决方案更好,因为它选择了所有字段,而不仅仅是其中的一部分。谢谢。很好的解决方案,如果你有一个固定宽度的第一个字段-你的所有长度都相同吗?第一个字段有7到8个字符,检查前5个就足够了。