find ./ -name "*log*" | xargs grep patten_A | xargs grep -v patten_B 로 둘중 하나가 맞을경우가 다 찾아지네요 AND로 조회할려고 하면 어떻게 해야 하나요?
grep에서 -i 를 하면 되지 않을까요? Ignore case distinctions in both the PATTERN and the input files. 라고 하네요.
---------------------------------------------------------------------------- 젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다. 정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
밑에분들 도움으로 해결했씁니다.
답변 감ㅅㅏ합니다
~.abc는 빼고 ~.def만 찾기는 이렇게 합니다.
find . -not \( -name "*.abc" \) -name "*.def" -type f -exec ls -l {} \;
파일명은 아니었고 파일내용검색이었습니다. 그 부분을 변화시키면 될듯 한데 적용하기에 제 지식이 부족합니다 ㅜㅜ
답변 감사합니다.
awk를 사용하세요.
find -name "*log*" | awk '/pattern_A/ { if( $0 !~ /pattern_B/ ) print }'
regular expression으로 원하시는것 마음껏 넣으세요. 여기서 pattern_A가 include하고 싶은 패턴이고 pattern_B가 exclude하고 싶은 패턴입니다.
쉽게 풀어드리자면,
#1. pattern_A와 매치되는지 검사. 매치된다면, goto #2. 매치안되면, 그냥 해당라인은 스킵하고 다시 #1 #2. pattern_B와 검사되는지 검사. 매치된다면, 해당라인은 스킵하고, 다시 #1. 매치안된다면 해당라인을 출력
굳이 regular expression안쓰시고 if( $0 == "abc" ) 같이 스트링 전체 비교도 가능합니다.
많은 도움이 되었습니다.
find ./ -name "*log*" | xargs grep patten_A | grep -v patten_B
=================================== 행동할 때 열정은 자라난다.
부족한 저의 지식을 채워주셔서 감사합니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
저도 궁금하네요.
grep에서 -i 를 하면 되지 않을까요?
Ignore case distinctions in both the PATTERN and the input files. 라고 하네요.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
inclue/exclude를 동시에 쓰니 말을 안듣네요
밑에분들 도움으로 해결했씁니다.
답변 감ㅅㅏ합니다
~.abc는 빼고 ~.def만 찾기는 이렇게
~.abc는 빼고 ~.def만 찾기는 이렇게 합니다.
find . -not \( -name "*.abc" \) -name "*.def" -type f -exec ls -l {} \;
네 답변감사합니다.
파일명은 아니었고 파일내용검색이었습니다. 그 부분을 변화시키면 될듯 한데 적용하기에 제 지식이 부족합니다 ㅜㅜ
답변 감사합니다.
awk를 사용하세요. find -name
awk를 사용하세요.
find -name "*log*" | awk '/pattern_A/ { if( $0 !~ /pattern_B/ ) print }'
regular expression으로 원하시는것 마음껏 넣으세요. 여기서 pattern_A가 include하고 싶은 패턴이고
pattern_B가 exclude하고 싶은 패턴입니다.
쉽게 풀어드리자면,
#1. pattern_A와 매치되는지 검사. 매치된다면, goto #2. 매치안되면, 그냥 해당라인은 스킵하고 다시 #1
#2. pattern_B와 검사되는지 검사. 매치된다면, 해당라인은 스킵하고, 다시 #1. 매치안된다면 해당라인을 출력
굳이 regular expression안쓰시고
if( $0 == "abc" ) 같이 스트링 전체 비교도 가능합니다.
자세한 답변 감사합니다.
많은 도움이 되었습니다.
두번째 grep의 xargs만 빼시면 될건데요...
find ./ -name "*log*" | xargs grep patten_A | grep -v patten_B
===================================
행동할 때 열정은 자라난다.
자세한 답변 감사합니다.
부족한 저의 지식을 채워주셔서 감사합니다.
답변 감사합니다.
부족한 저의 지식을 채워주셔서 감사합니다.
자세한 답변 감사합니다.
많은 도움이 되었습니다.
댓글 달기