2017-02-09 9 views
-1

Я пытаюсь найти« ботов »внутри огромного файла журнала. Все они регистрируются, меняют пароль и выходят из системы в течение одной секунды.Ошибка «не удается прочитать« Папка »при вызове sed

Я хочу написать Баш команды, которая покажет все встречающиеся профили следующих критериев:

  • пользователя авторизованы, пользователь изменил пароль, пользователь вышел из системы в том же секунду (все 3 действий должны осуществляться в течение 1 секунды)
  • эти действия (войти, изменения, выйдите) произойдет одно за другим без каких-либо других записей в между

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 секунды) - эти действия (вход, выходить из системы) происходили один за другим без каких-либо других вопросов между ..... из 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

попробуйте отредактировать - запустите команду all в столбце 1 –