我有一个固定长度的文件,主键是1-8。没有分隔符。我希望通过消除第二次出现来消除重复。在unix中寻找解决方案。
文件如下所示:
A00991CCAGXCD K 9999PHLX CANADIAN DOLLAR F
G0084W10%AEURN 4612EURONAV NV ANTWERPEN F
D1819089%ADB 6021DEUTSCHE BANK AG F
G0084W10GAADNT 6799ADIENT PLC F
D1F19089NADB 6021DEUTSCHE BANK AG F
输出扩展名为:
A00991CCAGXCD K 9999PHLX CANADIAN DOLLAR F
G0084W10%AEURN 4612EURONAV NV ANTWERPEN F
D1819089%ADB 6021DEUTSCHE BANK AG F
D1F19089NADB 6021DEUTSCHE BANK AG F
答案 0 :(得分:2)
短 awk 解决方案:
awk '!a[substr($1,1,8)]++' file
输出:
A00991CCAGXCD K 9999PHLX CANADIAN DOLLAR F
G0084W10%AEURN 4612EURONAV NV ANTWERPEN F
D1819089%ADB 6021DEUTSCHE BANK AG F
D1F19089NADB 6021DEUTSCHE BANK AG F
substr($1,1,8)
- 从第1个字段$1
返回8个字符长的子字符串(从第1个字符开始)
!a[...]++
- 仅考虑第一次出现的唯一数组索引