在 UNIX 中按顺序对字段值进行排序



我有一个文件,里面有重复的值。基于几个字段(归档 2、字段 3(,我需要删除重复项并更改字段 (ID( 的顺序,这是文件的唯一键。我怎样才能做到这一点?

例如。我的文件(测试.txt(包含

1,Eng,ECE
2,Eng,ECE
3,Eng,CS
4,Eng,CS

我希望输出在下面

1,Eng,ECE
2,Eng,CS

我已经使用命令删除了重复项

awk -F ',' '!a[$2$3]++' test.txt > test1.txt

我现在如何更改 ID 字段的顺序?

您可以使用

awk -F ',' -v "OFS=," '!a[$2$3]++ { $1=++i; print}'

这将重新编号从 1 开始的第一个字段。

另一种方法:

awk 'BEGIN { FS=OFS="," }
($2,$3) in seen { next }
{ seen[$2,$3] = 1; print ++seqno, $2, $3 }' test.txt
1,Eng,ECE
2,Eng,CS

最新更新