2016-10-22 4 views
1

정확히 3 "w", 5 "t"및 grep과 "v"가없는 행을 찾는 방법은 무엇입니까?grep을 사용하여 grep 검색

Input: 
---------- 
aabbccddd4444 
wccwwtttjjttuu 
zzxxxwwwmmmnnnn 

Expected output: 
---------------- 
wccwwtttjjttuu 

때문에 "wccwwtttjjttuu"에서 우리는 3 "w", 5 "의 t"없이 "V"

감사를! 버전 {3} 정규식 구조를 지원하는 확장 정규식과 awk

$ grep -xE '([^w]*w){3}[^w]*' ip.txt | grep -xE '([^t]*t){5}[^t]*' | grep -v 'v' 
wccwwtttjjttuu 


, 확실하지 -x 옵션 매치에만 전체 줄을 사용 grep

답변

4
$ cat ip.txt 
aabbccddd4444 
wccwwtttjjttuu 
wvccwwtttjjttuu 
zzxxxwwwmmmnnnn 
ccwwtttjjttuu 


. 나는 값이 요소의 수입니다 그래서

  • @w, @t, @v 배열은 각각
  • $#w@w에서 마지막 요소의 인덱스를 제공합니다 모든 w, t, v 문자가 포함 perl

    $ perl -ne '(@w)=/w/g; (@t)=/t/g; (@v)=/v/g; print if $#w==2 && $#t==4 && $#v==-1' ip.txt 
    wccwwtttjjttuu 
    
    GNU awk 4.1.3

    $ awk '/^([^w]*w){3}[^w]*$/ && /^([^t]*t){5}[^t]*$/ && !/v/' ip.txt 
    wccwwtttjjttuu 
    


    테스트 마이너스 원

+0

정말 고마워요! 그것은 작동합니다 :) –

관련 문제