The OpenNET Project / Index page

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

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

"поиск в файле найденном по дате последнего  изменения"  
Сообщение от nastr email(ok) on 15-Дек-08, 13:19 
есть скрипт который создаёт файлы отчётов (запускается 2 раза в день) и именует их таким образом: XXX_`date "+%m%d%H%M"`\.txt

Я сейчас пишу скрипт который будет обрабатывать эти файлы отчёты, но проблема в том что он не может общаться к файлу по имени XXX_`date "+%m%d%H%M"`\.txt
т.к. если данный скрипт запускается на секунду позже чем были запущены предыдущие скрипты, то он пытается обращаться уже к другим именам отчётов (которые не существуют).

Я решил найти файлы изменяемые за последний час:
# find ./ -mtime 1
./PAS_12121610.txt
./CHRIS_12121610.txt
. . .

Нужно из найденных выделать, определённый файла для каждого отчёта отдельно:
./ -mtime 2 | grep CHRIS

Потом в это файле найти все строки содержащие error
# find ./ -mtime 2 | grep CHRIS | grep error CHRIS*
#в таком случае error ищется во всех файлах CHRIS* в папке

Как в случае поиска файла по времени последнего изменения, начать поиск grep'ом в этом файле?

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

 Оглавление

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


1. "поиск в файле найденном по дате последнего  изменения"  
Сообщение от nastr email(ok) on 15-Дек-08, 14:29 
find ../Logs/ -mtime -1 -name "CHRIS*"  > ../Logs/tmp
cat ../Logs/tmp | while read file
do
grep error $file
done
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "поиск в файле найденном по дате последнего  изменения"  
Сообщение от Andrey Mitrofanov on 15-Дек-08, 14:48 
>-name "CHRIS*"  > ../Logs/tmp
>cat ../Logs/tmp | while read file
>do
>grep error $file
>done

Зачем _так_ сложно (нет, "основной" вопрос тут не при чём)?

.... -name "CHRIS*" |xargs grep error

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

2. "поиск в файле найденном по дате последнего  изменения"  
Сообщение от mikra on 15-Дек-08, 14:29 
>[оверквотинг удален]
>
>Я сейчас пишу скрипт который будет обрабатывать эти файлы отчёты, но проблема
>в том что он не может общаться к файлу по имени
>XXX_`date "+%m%d%H%M"`\.txt
>т.к. если данный скрипт запускается на секунду позже чем были запущены предыдущие
>скрипты, то он пытается обращаться уже к другим именам отчётов (которые
>не существуют).
>
>Я решил найти файлы изменяемые за последний час:
># find ./ -mtime 1

Я сомневаюсь, что в какой-либо версии find ключ mtime измеряется в часах. У меня - в сутках. Вобщем почтай man find на всякий случай.
Мой вариант
find . -mmin -60

>Нужно из найденных выделать, определённый файла для каждого отчёта отдельно:
>./ -mtime 2 | grep CHRIS

Многопараметрический поиск можно делать в find
find . -mmin -60 -name "*CHRIS*"

>Потом в это файле найти все строки содержащие error
># find ./ -mtime 2 | grep CHRIS | grep error CHRIS*

Здрасте приехали... В конвейере имена файлов ходят, а ты там строки из файлов ищешь.
Каждый файл надо сперва открыть и вывести, а потом в нем что-то искать
find . -mmin -60 -name "*CHRIS*" -exec cat '{}' \; | grep "error CHRIS"

>#в таком случае error ищется во всех файлах CHRIS* в папке

Вообще странно что у тебя оно хоть что-то искало ;)
Почитай внимательнее man find. Это очень полезный инструмент.

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

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

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




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

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