2014-10-22 6 views
-1

두 글자 중 하나를 포함하여 연속 된 "*"문자 사이에있는 줄 수를 계산하고 싶습니다. 입력 :두 글자 사이의 줄 수를 계산하십시오.

>*1 
AA 
BB 
CC 
>*2 
RR 
FGRE 
>*3 
A 

출력 : 제 * 필드의 두 번째 필드 간의 행의 개수

4 >*1 
3 >*2 
2 >*3 

이를 포함하는 문자열이다.

+0

왜 모든 태그를해야합니까? – admdrew

+0

죄송합니다! 나는 무엇을 사용해야할지 몰랐다. 더 나아 졌니? – ahb65

답변

2

당신이 할 수있는 AWK 사용 :

awk '/\*/{if (p) print c, p; p=$0;c=0} {c++} END{if (p) print c, p}' file 
4 >*1 
3 >*2 
2 >*3 
1

이 시도 :

여기
cat x1.txt | perl -ne ' 
    chomp; 
    if ($_ =~ /^>\*/) { 
    $l1{$_}++; 
    }; 
    $prev=$_; 
    while(<>){ 
    chomp; 
    if ($_ =~ /^>\*/) { 
     $prev=$_; 
     $l1{$prev}++; 
    } else { 
     $l1{$prev}++;} 
    };    
    if (eof) { 
     foreach $m1 (keys %l1){ 
     print qq($m1 , $l1{"$m1"}\n); 
     }; 
};' 
1

의 내 명령을

nl | sed -n '/*/p;/*/{1!p};$p' | xargs -n4 | awk '{print $3-$1, $2}' 
+0

또는'nl | sed -n '/ */{p; 1! p}; $ p'| xargs -n4 | awk '{인쇄 $ 3- $ 1, $ 2}' ' –

관련 문제