LINUX.ORG.RU
ФорумAdmin

Помогите в написании скрипта


0

0

Пишу скрипт. Нужно что бы он читал файл, находил определенное слово в начале строки, отсчитывал несколько строк, до следующего ключевого слова (дальше понятно) выдирал этот фрагмент и .......

anonymous

Re: Помогите в написании скрипта

возможный способ:

lns=$(cat your_file | wc -l)
cat your_file | grep -A $lns ^keyword1 | grep -B $lns ^keyword2 > result

dilmah ★★★★★ ()
Ответ на: Re: Помогите в написании скрипта от dilmah

Re: Re: Помогите в написании скрипта

но опции -A -B нестандартные.

Если надо стандартно, то можно:

lns=$(cat your_file | wc -l)
cat your_file | nl -ba -nln > nled
ln1=$(cat nled | grep "^[[:digit:]]*[[:space:]]*keyword1" | head -n1 | cut -f1)
cat nled | tail -n $(($lns - $ln1 + 1)) > nled_chopped
ln2=$(cat nled_chopped | grep "^[[:digit:]]*[[:space:]]*keyword2" | head -n1 | cut -f1)
cat nled_chopped | head -n $(($ln2 - $ln1 + 1)) | cut -f2- > fragment

dilmah ★★★★★ ()
Ответ на: Re: Помогите в написании скрипта от sasha999

Re: Re: Помогите в написании скрипта

>не очень понятно... пример можешь привести ? Есть лог.файл, из него нужно выбирать определенные строки, например в строке есть слово "anonymous" и начиная с этой строки нужно отсчитать количество строк до следующего ключевого слова, например "connect". Слова идут первыми в строках.

anonymous ()
Ответ на: Re: Помогите в написании скрипта от sasha999

Re: Re: Помогите в написании скрипта

>не очень понятно... пример можешь привести ?
Есть лог.файл, из него нужно выбирать определенные строки, например в строке есть слово "anonymous" и начиная с этой строки нужно отсчитать количество строк до следующего ключевого слова, например "connect". Слова идут первыми в строках.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.