我想添加一列
我生成了以下表格格式(.txt 文件和制表符分隔)
ID ALPA
1 A
1 A
1 B
1 B
1 C
2 A
2 A
2 B
2 B
2 C
2 C
一个ID中有两个相同的ALPA 就像 ID 1 中的两个 A 但如果 ID 1 的 C 仅包含一个 然后我想评论同一行,如下所示
ID ALPA Remark
1 A
1 A
1 B
1 B
1 C Error : There is only one ALPA exist
2 A
2 A
2 B
2 B
2 C
2 C
有人知道哪种方法更好吗?
谢谢大家!
最佳答案
这是 awk 行,它不需要对输入文件进行排序:
awk -F'\t' -v OFS="\t" 'NR==1{print $0,"Remark"}
{k=$1FS$2;x[NR]=k;c[k]++}
END{for(i=2;i<=NR;i++)printf "%s%s\n", x[i],(c[x[i]]!=2? FS "ERROR":"")}' file
使用您的数据,输出:
ID ALPA Remark
1 A
1 A
1 B
1 B
1 C ERROR
2 A
2 A
2 B
2 B
2 C
2 C
你可以写有意义的错误消息,我只是将其设置为“错误”
更新
添加相对可读版本:
awk -F'\t' -v OFS="\t" 'NR==1{print $0,"Remark"}
{key=$1FS$2; lines[NR]=key; count[key]++}
END{for(i=2;i<=NR;i++)
if(count[lines[i]]!=2)
print lines[i], "ERROR"
else
print lines[i]}' file
关于python - Linux增加更多文本格式列的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25265007/