首页 > 其他分享 >awk 依据几列的值删除重复行

awk 依据几列的值删除重复行

时间:2023-10-10 11:01:36浏览次数:36  
标签:last 删除 start chr awk 几列 print txt

依据几列的值删除重复行

输入
1.txt
a 1 1
a 1 2
a b 3
a c 4
a c 5
a c 6
a d 7
a d 8
a e 9
a f 10
a f 11

输出
2.txt
a b 3
a e 9

先把1.txt按照指定的几列(第1,2列)排序

sort -k1,1 -k2,2  1.txt > 3.txt

awk
 '{last=$0; chr=$1;start=$2; getline; if( chr == $1 && start == 
$2 ) {print last"\t1";print $0"\t1";} else {print last"\t0";print 
$0"\t0";}}' 3.txt \
> 4.txt

awk 'BEGIN{getline;print 
$0"\t"0;}{last=$0; chr=$1;start=$2; getline; if( chr == $1 && 
start == $2 ) {print last"\t1";print $0"\t1";} else {print 
last"\t0";print $0"\t0";}}' 4.txt \
> 5.txt

awk '$4 == 0 && $5 == 0'  5.txt | awk '{print $1"\t"$2"\t"$3;}' > 2.txt


标签:last,删除,start,chr,awk,几列,print,txt
From: https://blog.51cto.com/emanlee/7789374

相关文章

  • shell_脚本开发_数值运算_bc_awk
    bc命令bc命令是当作计算器的来用的,并且当作命令行来的,一般结合管道符使用(相当于echo把字符打印出来传递给bc处理)[root@localhosttmp]#bc###直接输入bc可开启一个计算器的功能bc1.06.95Copyright1991-1994,1997,1998,2000,2004,2006FreeSoftwareFoundation,Inc.......
  • linux 中删除文本中第一个.号之前的内容
     001、方法1利用cut[root@pc1test01]#lsa.txt[root@pc1test01]#cata.txt##测试数据001.002.003.004.005006.007.008.009.010011.012.013.014.015016.017.018.019.020021.022.023.024.025026.027.028.029.030[root@pc1test01]#cut-d".&q......
  • .NET 数据库大数据操作方案(插入、更新、删除、查询 、插入或更新)
    1、功能介绍 海量数据操作ORM性能瓶颈在实体转换上面,并且不能使用常规的Sql去实现当列越多转换越慢,SqlSugar将转换性能做到极致,并且采用数据库最佳API操作数据库达到极限性能,当然你如果不用sqlsugar了解一下原理也可以使用其他ORM实现 BulkCopyBulkCopy是一种用于高效批量......
  • LntonGBS针对数据库删除级联数据后的无效数据进行的优化
    LntonGBS国标视频云服务可支持通过国标GB28181协议将设备接入,实现视频的实时监控直播、录像、语音对讲、云存储、告警、级联等功能,同时也支持将接入的视频流进行全终端、全平台分发,分发的视频流包括RTSP、RTMP、FLV、HLS、WebRTC等格式。同时LntonGBS平台也支持海康Ehome协议及SDK......
  • 国标GB28181协议平台LntonGBS如何批量删除通道?
    国标视频云服务平台LntonGBS可支持通过国标GB28181协议,接入多路视频源设备,实现视频流的接入、转码、处理与分发等功能,对外输出的视频流格式包括RTSP、RTMP、FLV、HLS、WebRTC等。平台视频能力丰富灵活,包括监控直播、视频分发、录像、回看与检索、云存储、语音对讲、告警上报、云台......
  • 83、删除链表重复节点
    Givenasortedlinkedlist,deleteallduplicatessuchthateachelementappearonlyonce.Forexample,Given1->1->2,return1->2.Given1->1->2->3->3,return1->2->3 publicListNodedeleteDuplicates(ListNodehead){if(head=......
  • github 仓库无损断开/删除与 fork 仓库的链接
    如果在github上fork了一个仓库,之后如果想要断开链接,无需使用复杂的git操作,直接提交github支持工单就可以了。当然,这个断开确是因为两个仓库已经“分道扬镳”,比如常见的是fork了一个模版仓库,然后开发了很多业务代码。此时其实已经跟原仓库没有什么关系了。此操作不会破......
  • 使用LVM给Centos根分区扩容(删除其他分区,将空余空间添加到根分区)
    使用LVM给Centos根分区扩容(删除其他分区,将空余空间添加到根分区)新建的虚拟机发现根分区空间只分配了一半,另外一半分给了/home,和想要的效果不一致,于是需要删除/dev/mapper/centos-home分区,将空间添加到根分区1.查看磁盘发现/dev/mapper/centos-home分区占了一半空间.[root@te......
  • webpack配置删除console
    1.删除所有的console.logvue.config.js:module.exports=defineConfig({configureWebpack:(config)=>{//删除consoleconfig.optimization.minimizer[0].options.minimizer.options.compress=Object.assign(config.optimization.minimizer[0]......
  • SqlServer 删除的性能优化
    SqlServer删除的性能优化最近遇到个SqlServer删除性能的问题。假设我们有如下的表定义CreateTableTree(IdINT,NameNVARCHAR(MAX),ParentIdINT,PRIMARYKEY(Id),FOREIGNKEY(ParentId)REFERENCESTree(Id))当我们Tree表的数据量比较大的时候,我们删......