2017-02-09 1 views
-1

거대한 로그 파일에서 "봇"을 찾으려고합니다. 그들은 모두 로그인하고 암호를 변경하고 1 초 이내에 모두 로그 오프합니다.sed를 호출 할 때 "폴더를 읽을 수 없습니다."오류가 발생했습니다.

내가 기준을 다음과 같은 모든 프로파일 회의가 표시됩니다 배쉬 명령 쓰고 싶은 :

  • 사용자가 로그인, 사용자는 사용자가 1 초 이내에 수행해야 같은 초 (3 개 행동에서 로그 오프, 암호 변경)
  • 이러한 작업 (로그 오프, 변경, 로그인) 로그 파일에서 전형적인 프로파일 이름입니다 fxsciaqulmlk

사이에 다른 항목이 잇달아 일어난다.

로그 파일의

작은 부분 :

Mon, 22 Aug 2016 13:15:39 +0200|178.57.66.225|fxsciaqulmlk| - |user logged in| - 
Mon, 22 Aug 2016 13:15:39 +0200|178.57.66.225|fxsciaqulmlk| - |user changed password| - 
Mon, 22 Aug 2016 13:15:39 +0200|178.57.66.225|fxsciaqulmlk| - |user logged off| - 
Mon, 22 Aug 2016 13:15:42 +0200|178.57.66.225|faaaaaa11111| - |user logged in| - 
Mon, 22 Aug 2016 13:15:49 +0200|178.57.66.215|terdsfsdfsdf| - |user logged in| - 
Mon, 22 Aug 2016 13:15:49 +0200|178.57.66.215|terdsfsdfsdf| - |user changed password| - 
Mon, 22 Aug 2016 13:15:49 +0200|178.57.66.215|terdsfsdfsdf| - |user logged off| - 
Mon, 22 Aug 2016 13:15:59 +0200|178.57.66.205|erdsfsdfsdf| - |user logged in| - 
Mon, 22 Aug 2016 13:15:59 +0200|178.57.66.205|erdsfsdfsdf| - |user logged in| - 
Mon, 22 Aug 2016 13:15:59 +0200|178.57.66.205|erdsfsdfsdf| - |user changed password| - 
Mon, 22 Aug 2016 13:15:59 +0200|178.57.66.205|erdsfsdfsdf| - |user logged off| - 
Mon, 22 Aug 2016 13:17:50 +0200|178.57.66.205|abcbbabab| - |user logged in| - 
Mon, 22 Aug 2016 13:17:50 +0200|178.57.66.205|abcbbabab| - |user changed password| - 
Mon, 22 Aug 2016 13:17:50 +0200|178.57.66.205|abcbbabab| - |user changed profile| - 
Mon, 22 Aug 2016 13:17:50 +0200|178.57.66.205|abcbbabab| - |user logged off| - 
Mon, 22 Aug 2016 13:19:19 +0200|178.56.66.225|fxsciulmla| - |user logged in| - 
Mon, 22 Aug 2016 13:19:19 +0200|178.56.66.225|fxsciulmla| - |user changed password| - 
Mon, 22 Aug 2016 13:19:19 +0200|178.56.66.225|fxsciulmla| - |user logged off| - 
Mon, 22 Aug 2016 13:20:42 +0200|178.57.67.225|faaaa0a1111| - |user logged in| - 

가이 코드 작성 :

#!/bin/bash 
sed ' 
    /logged in\s*$/! d 
    :1 
    $! N 
    /logged in\s*$/D 
    /\(logged \(in\|off\)\|changed password\)$/! s/\n[^\n]*$// 
    /logged off$/! b1 
    ' /home/indra/Desktop/Untitled Folder/log.txt 

을하지만이 코드를 실행하려고 할 때이 마사지 얻을 :

sed: can't read Folder/log.txt: No such file or directory 

을 이 문제를 해결하는 방법?

+0

예상되는 출력과 예상 출력은 무엇입니까? 주어진 더미 데이터, 여기에 오류가 없습니다. –

+0

예상 출력? >>>> 다음 기준을 충족하는 모든 프로필을 표시하십시오. - 사용자가 암호를 변경했으며 같은 초에 사용자가 로그온했습니다 (3 가지 작업 모두 1 초 이내에 완료되어야 함) - 이러한 작업 (로그인, 변경, 로그 오프) 사이에 다른 entires없이 하나씩 일어날 ..... log.txt – Ahmedsaber

+0

링크를 조사하지 않을 여기에 최소 샘플 데이터를 게시, [mvce에 대한 읽기 (http://stackoverflow.com/ help/mcve) 질문을 잘 편집하여 의견을 추가하면 일반적으로 명확하지 않습니다. –

답변

0

Untitled Folder에는 공백이 있으므로 따옴표를 붙이십시오. 그리고 첫 번째 열에서 sed 입력을 모두 시작하십시오.

#!/bin/bash 
sed ' 
/logged in\s*$/! d 
:1 
$! N 
/logged in\s*$/D 
/\(logged \(in\|off\)\|changed password\)$/! s/\n[^\n]*$// 
/logged off$/! b1 
    ' /home/indra/Desktop/"Untitled Folder"/log.txt 
+0

오류는 없지만 스크립트는 bash에서 아무 것도 출력하지 않는다. – Ahmedsaber

+0

편집을 시도한다 - 열 1에 sed 자료를 모두 시작한다. –

관련 문제