BeB*_*eBo 1 python csv awk duplicates
我有一个包含三列的大型CSV文件(1.8 GB)。每行包含两个字符串和一个数值。问题是它们重复但已交换。例:
Col1,Col2,Col3
ABC,DEF,123
ABC,EFG,454
DEF,ABC,123
Run Code Online (Sandbox Code Playgroud)
所需的输出如下所示:
Col1,Col2,Col3
ABC,DEF,123
ABC,EFG,454
Run Code Online (Sandbox Code Playgroud)
因为第三行包含与第一行相同的信息。
编辑
数据基本上看起来像这样(前两列为字符串,第三行为4000万行,为数值):
你能处理awk吗?
$ awk -F, '++seen[$3]==1' file
Run Code Online (Sandbox Code Playgroud)
输出:
COL1,Col2,Col3
ABC,DEF,123
ABC,EFG,454
Run Code Online (Sandbox Code Playgroud)
解释:
$ awk -F, ' # set comma as field delimiter
++seen[$3]==1 # count instances of the third field to hash, printing only first
' file
Run Code Online (Sandbox Code Playgroud)
更新:
$ awk -F, '++seen[($1<$2?$1 FS $2:$2 FS $1)]==1' file
Run Code Online (Sandbox Code Playgroud)
输出:
COL1,Col2,Col3
ABC,DEF,123
ABC,EFG,454
Run Code Online (Sandbox Code Playgroud)
它对第一个字段和第二个字段的每个组合进行哈希处理,以便"ABC,DEF"=="DEF,ABC"仅对第一个字段进行打印并计数。($1<$2?$1 FS $2:$2 FS $1):如果第一个字段小于第二个字段,则哈希1st,2nd其他hash2nd,1st。