簡體   English   中英

如何使用awk查找行中的連續模式?

[英]How can I use awk to find consecutive patterns in lines?

我正在嘗試創建一個awk腳本,該腳本能夠根據第3個字段對連續模式進行計數,並且如示例中所示打印了第一個和最后一個坐標字段(第2個字段)。

我有一個腳本,可以計算我想要的任何坐標窗口中的圖案數量,例如:1000000將數據居中居中:

awk '{a[$1 FS 1000000*int(($2-1)/1000000)+500000]++} END{for(k in a) print k,a[k]}' file

但是,它將計算所有模式的數量,而不管是1/1還是0/1。

17 38172452 1/1
17 38172942 1/1
17 38172973 1/1  
17 38173143 0/1
17 38176256 0/1
17 38176476 1/1
17 38178149 0/1
17 38178627 0/1
17 38179275 0/1
17 38179290 0/1
17 38179492 0/1
17 38179667 1/1
17 38182229 0/1
17 38183090 0/1
17 38183505 0/1
17 38188419 0/1
17 38188844 0/1
17 38189049 0/1

預期結果:

17 38172452 38172973 3 1/1
17 38173143 38176256 2 0/1
17 38178149 38179492 5 0/1
17 38182229 38189049 6 0/1

你們能幫我這個忙嗎?

假設$1不變...

awk '{if(p==$3) {c++; e=$2}
      else {if(c>1) print $1,b,e,p,c; 
            b=$2; c=1; p=$3}}
 END {print $1,b,$2,p,c}' file

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM