The OpenNET Project / Index page

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

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

"вопрос по GREP"
Сообщение от Диф Искать по авторуВ закладки on 19-Май-04, 13:18  (MSK)
Подскажите, люди добрые, как с помощью команды grep выбрать не всю строку, содержащую нужное мне рег. выражение, а только само рег выр.

точнее из строчки '123(qwe)fdg' нужно выбрать то, что находится в скобках...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "вопрос по GREP"
Сообщение от Диф Искать по авторуВ закладки on 19-Май-04, 13:29  (MSK)
и еще...
какие опции нужны для ls что бы выводился полный путь к файлу?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "вопрос по GREP"
Сообщение от dilmah Искать по авторуВ закладки(??) on 19-Май-04, 13:56  (MSK)
>и еще...
>какие опции нужны для ls что бы выводился полный путь к файлу?
>

можно find'ом.  С -maxdepth 1 он вроде только текущую директорию будет смотреть.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "вопрос по GREP"
Сообщение от dilmah Искать по авторуВ закладки(??) on 19-Май-04, 13:53  (MSK)
>Подскажите, люди добрые, как с помощью команды grep выбрать не всю строку,
>содержащую нужное мне рег. выражение, а только само рег выр.
>
>точнее из строчки '123(qwe)fdg' нужно выбрать то, что находится в скобках...

Стандартный grep так не умеет.  Можно sed'ом:

cat file | grep regexp | sed "s/^.*\(regexp\).*$/\\1/"

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "вопрос по GREP"
Сообщение от Диф Искать по авторуВ закладки on 19-Май-04, 16:18  (MSK)
>Стандартный grep так не умеет.  Можно sed'ом:
>
>cat file | grep regexp | sed "s/^.*\(regexp\).*$/\\1/"

вся проблема в том, что мое regexp является * ((

попробую поподробней описать проблему...

Задача:
ОС FreeBSD. выбрать из портов все файлы с названием distinfo
они содаржат несколько строк
--
MD5 (xc/X336src-1.tgz) = bbfa...
MD5 (xc/X336src-2.tgz) = ...
--
сначала нужно выбрать строку, начинающуюся с MD5 и не заканчивающуюся на IGNORE
далее необходимо выбрать все содержимое скобок
и отталкиваясь от директории /usr/ports/distfiles
проверить контрольную сумму этого файла
#MD5 path_to_file
результат этой команды сверить с выбранной строкой
если результат совпал, то ничего не делать, иначе удалить этот файл (если он существует) и записать его имя в какой-нибудь лог-файл

соответственно нужно пройти рекурсивно по всем папкам портов

хочется написать на shell'e...
заодно и поизучать его ))

пока кое-что надумал...
но может вы что-нить подскажете?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "вопрос по GREP"
Сообщение от dilmah Искать по авторуВ закладки(ok) on 19-Май-04, 21:26  (MSK)
> ОС FreeBSD. выбрать из портов все файлы с названием distinfo
> они содаржат несколько строк
>--
>MD5 (xc/X336src-1.tgz) = bbfa...
>MD5 (xc/X336src-2.tgz) = ...
>--
>сначала нужно выбрать строку, начинающуюся с MD5 и не заканчивающуюся на IGNORE
>
>далее необходимо выбрать все содержимое скобок
>и отталкиваясь от директории /usr/ports/distfiles
>проверить контрольную сумму этого файла
>#MD5 path_to_file
>результат этой команды сверить с выбранной строкой
>если результат совпал, то ничего не делать, иначе удалить этот файл (если
>он существует) и записать его имя в какой-нибудь лог-файл
>
>соответственно нужно пройти рекурсивно по всем папкам портов
>
>хочется написать на shell'e...
>заодно и поизучать его ))
>
>пока кое-что надумал...
>но может вы что-нить подскажете?

те файлы как-то похожи на вывод md5 или mtree.
Может можно сгенерировать такой же файл для имеющихся файлов и
сделать diff..

И перед тем как смотреть sed или awk -- многие вещи просто cut'ом делаются.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "вопрос по GREP"
Сообщение от Dif emailИскать по авторуВ закладки(??) on 19-Май-04, 23:22  (MSK)
>те файлы как-то похожи на вывод md5 или mtree.
>Может можно сгенерировать такой же файл для имеющихся файлов и
>сделать diff..
>
сейчас делаю все с помощью awk grep cat )))


>И перед тем как смотреть sed или awk -- многие вещи просто
>cut'ом делаются.

знать бы что это такое ))))))))
сейчас маны посмотрю

допишу криптик, выложу обязательно
порежете мне его чуток.. уж больно я его накрутил от незнания (((


  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "вопрос по GREP"
Сообщение от Dracula Искать по авторуВ закладки(??) on 19-Май-04, 23:38  (MSK)
Например

grep "MD5" /usr/ports/astro/luna/distinfo | awk -F \( '{print$2}' | awk -F \) '{print$1}'

или


grep "MD5" /usr/ports/astro/*/distinfo | awk -F \( '{print$2}' | awk -F \) '{print$1}' > checksum.log

а потом что такое

while read CHECKSUM
do
     if [ "$CHECKSUM" = "с_чем_надо_сравнить" ]
     then
          echo "OK"
#    else  
#    есть несколько вариантов удаления, но вот башка болит ..    
     fi
done < checksum.log


=========================
сразу все порты вряд ли проверит (  list too long )
так что придется кусками

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "вопрос по GREP"
Сообщение от vt Искать по авторуВ закладки(??) on 19-Май-04, 15:44  (MSK)
>Подскажите, люди добрые, как с помощью команды grep выбрать не всю строку,
>содержащую нужное мне рег. выражение, а только само рег выр.
>
>точнее из строчки '123(qwe)fdg' нужно выбрать то, что находится в скобках...

grep -o

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "вопрос по GREP"
Сообщение от Диф Искать по авторуВ закладки on 19-Май-04, 16:21  (MSK)
>
>grep -o

grep: invalid option --o


  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "вопрос по GREP"
Сообщение от vt Искать по авторуВ закладки(??) on 19-Май-04, 16:43  (MSK)
>>grep -o
>
>grep: invalid option --o

freebsd ?
тогда только с помощью sed, awk, perl и т.п.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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