LINUX.ORG.RU
ФорумAdmin

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


0

0

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

anonymous

Ответ на: комментарий от dilmah

но опции -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 ★★★★★
()
Ответ на: комментарий от sasha999

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

anonymous
()
Ответ на: комментарий от sasha999

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

anonymous
()
Ответ на: комментарий от anonymous

# 3. lines between "anonymous" and "connect"
perl -ne 'print if /^anonymous/ .. /^END$/'

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