The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Простой shell-вопрос"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Простой shell-вопрос"  
Сообщение от Septima email(??) on 29-Ноя-07, 16:45 
Есть данные, немного структурированные: идут по разделам - начало раздела с первого символа строки, остальные строки начинаются с пробела. Несколько разделов. Похоже на вывод ifconfig во фре или lspci -v  в линуксе. Данных много - порядка 100-200 кБ. Читать через less неудобно - нужна оперативность (перечитка по мере возникшей необходимости - от 10 секунд до 30 минут, не в этом дело). Подскажите, как можно выбрать только один раздел на уровне grep, sed, awk & etc? Источник может быть stdin или файл.
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Простой shell-вопрос"  
Сообщение от angra (ok) on 30-Ноя-07, 05:52 
может вам подойдет поиск в less, вызывается нажатием /
А так я бы написал простенький perl скрипт, который один раз считывает все данные в хеш с ключами по именам разделов, далее ожидает ввода имени раздела с клавиатуры и выводит элемент хеша с этим ключом. И так до тех пор пока не будет введена пустая строка, означающая выход
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Простой shell-вопрос"  
Сообщение от ShyLion (ok) on 30-Ноя-07, 08:57 
>Есть данные, немного структурированные: идут по разделам - начало раздела с первого
>символа строки, остальные строки начинаются с пробела. Несколько разделов. Похоже на
>вывод ifconfig во фре или lspci -v  в линуксе. Данных
>много - порядка 100-200 кБ. Читать через less неудобно - нужна
>оперативность (перечитка по мере возникшей необходимости - от 10 секунд до
>30 минут, не в этом дело). Подскажите, как можно выбрать только
>один раздел на уровне grep, sed, awk & etc? Источник может
>быть stdin или файл.

по сути вопроса:
ifconfig | awk 'BEGIN {a=0}; {if(/^rl0:/ && a==0) {print;a=1} else {if(/^[[:space:]]+/ && a==1){print}else{a=0}}}'

по теме: юзай perl - в разы удобней, быстрее, гибче, весьма портабелен, есть почти на всех никсах, куча модулей в комплекте, туева хуча модулей в инете.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Простой shell-вопрос"  
Сообщение от ShyLion (ok) on 30-Ноя-07, 09:23 
или так
ifconfig | awk 'BEGIN {a=0};/^xl0/{print;a=1};/^[[:space:]]+/ && a==1 {print};\!/^xl0/ && \!/^[[:space:]]+/{a=0};'
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру