有没有办法只删除后面的重复项?

时间:2015-09-22 16:48:10

标签: linux shell

我有这些列的CSV输入:

1,zzzz,xxxx,
2,xxxx,xxxx,
3,yyyy,xxxx,
1,ffff,xxxx,

我需要丢弃第一个字段与前一行匹配的行:

sort | uniq

我单独尝试window.onload = startup; function startup() { runArraySequence () { writeArray.onclick = findArray; } } var array = [5,3,9,12,19,15,13,6,9,2,4,7,8,17]; function findArray () { //The following script is a part of a 12 "else if" radio button form. if (arrayRad11.checked) { var searchNumber = document.getElementById("arrayValue").value; var arrayResult = -1; for (var i=0; i < array.length; i++) { if (array[i] === searchNumber) { i = arrayResult; } if (arrayResult < 0) { msg6.innerHTML = "Found number " + searchNumber + ", " + arrayResult + " times."; } } } } 但是没有工作,因为除第一个字段(数字)外,所有行都不同。

2 个答案:

答案 0 :(得分:1)

使用awk代替uniq

awk -F, '$1 != last { last=$1; print }'

-F,将字段分隔符设置为逗号。 $1是第一个字段的内容,因此只要第一个字段发生更改,就会打印该行。

答案 1 :(得分:1)

获得uniq --check-chars=N所需的输出; uniq将仅检查行中指定数量的字符,并且由于输入未排序,因此将允许字符稍后出现在列表中。