【问题标题】:ordering a field value in sequential order in unix在 unix 中按顺序对字段值进行排序
【发布时间】:2019-11-28 16:25:17
【问题描述】:

我有一个包含重复值的文件。基于少数字段(归档 2,字段 3),我需要删除重复项并更改作为文件唯一键的字段(ID)的序列。我怎样才能做到这一点?。

例如。我的文件(test.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 字段的顺序?

【问题讨论】:

    标签: unix duplicates sequence


    【解决方案1】:

    你可以使用

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

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

    【讨论】:

      【解决方案2】:

      另一种方法:

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-29
        • 2011-09-14
        相关资源
        最近更新 更多