有办法在Unix中
删除文件中的重复行吗?
我可以用排序-u和uniq命令。但我想使用sed或awk。
那可能吗?
awk '!seen[$0]++' file.txt
看到的是一个关联数组,Awk将传递文件的每一行。如果一个行不在数组中,则看到[$ 0]将计算为false。 !!是一个逻辑NOT运算符,并将false转换为true。 Awk将打印表达式求值为true的行。看到的增量,看到[$ 0] == 1,在第一次找到一行,然后看到[$ 0] == 2,依此类推。Awk评估除0和“”(空字符串)之外的所有内容为true。如果一个重复行被放置在可见的位置,则![$ 0]将计算为false,并且该行不会被写入输出。