我有这些列的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.";
}
}
}
}
但是没有工作,因为除第一个字段(数字)外,所有行都不同。
答案 0 :(得分:1)
使用awk
代替uniq
:
awk -F, '$1 != last { last=$1; print }'
-F,
将字段分隔符设置为逗号。 $1
是第一个字段的内容,因此只要第一个字段发生更改,就会打印该行。
答案 1 :(得分:1)
获得uniq --check-chars=N
所需的输出; uniq
将仅检查行中指定数量的字符,并且由于输入未排序,因此将允许字符稍后出现在列表中。