perl 정규 표현식 질문입니다.

lovethecorners의 이미지

perl mania에 올렸는데 이곳에도 올려봅니다.

다음과 같은 log 가 있을때

Sales Browse Update -Sales Executive changed from lkrupp to mregnier
Sales Browse Update -Sales Executive changed from kclaxton to lkrupp
Sales Browse Update -Sales Executive changed from mfreeman to kclaxton
Sales Browse Update -Sales Executive changed from to mfreeman -Priority changed from to High
Info Manager Update -CSR changed from to cdavis -Sales Executive changed from to cdavis
Sales Browse Update -Sales Executive changed from twhite to mfreeman
Sales Browse Update -Sales Executive changed from lkrupp to twhite
Sales Browse Update -Sales Executive changed from nwhite to lkrupp
Priority to Call 2 - AccExec Removed: -Sales Executive changed from lkrupp to

위의 logs는 DB에서 특정 ID의 log 입니다. while loop을 돌리면서 "Sales Executive changed from lkrupp to mregnier" -> to username들만을 뽑아내고 싶습니다. 가능한지 불가능한지도 모르겠습니다. 혹시 아시는분 계시면 조언주시면 감사하겠습니다. 구룹으로 묶어서 그부분만 빼내는 생각을 했는데 생각처럼 되지가 않습니다. 사실 구룹으로 묶기도 힘들지 않을까 하는데요....도움 요청 드립니다.

나빌레라의 이미지

perl 까지도 필요 없을 것 같은데요..

cat log | grep 'Sales Executive changed from lkrupp to' | awk '{print $9, $10;}'

이러면 돼지 않을까요?

얇은 사 하이얀 고깔은 고이 접어서 나빌레라

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

elflord의 이미지

while ($line = <>)
{
    if ($line =~ m/Sales Executive changed from lkrupp (.*)/) {
        print "$1\n"
    }
}

그럼 이만 총총...[竹]
http://elflord.egloos.com


===== ===== ===== ===== =====
그럼 이만 총총...[竹]
http://elflord.egloos.com

lovethecorners의 이미지

답변 감사합니다.

if ($log =~ m/Sales Executive changed from (.*) (.*)/) { ... }
저도 이런식으로 해결했습니다. if 사용않고 ...=~ s/... 이런식으로 하려했는데 않되더군요.

==
more than one way to do it
말로만 블로거: http://gojdweb.egloos.com

puaxx의 이미지

~m은 matching
~s은 substitution

을 의미합니다.

pcharley의 이미지

cat log | perl -ne 'print if s/^.+\s-Sales Executive changed from lkrupp (to\s.+)$/result: $1/'

이렇게해도 될거 같네요..

by P.C.Harley

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.