The OpenNET Project / Index page

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

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

"поиск выржения в названиях файлов"  +/
Сообщение от konsai (ok) on 16-Фев-14, 09:33 
Господа, прошу помощи знатоков.
Есть скрипт поиска в названиях файлов выражения, получаемого из БД

#!/bin/bash
DIR=/home/konsai/test
CSHIFT=`mysql -u konsai test -N -e "select max(shiftno) from shiftslog"`
if [ -e $DIR/$CSHIFT ];
  then echo "есть такой файл" $CSHIFT
else
  echo "Нет такого файла"
fi

запрос mysql возвращает 65180
директория содержит файлы shift_65180_16.02.14.tgz, shift_65170_15.02.14.tgz ну и так далее
В общем - выражение из базы содержится в названии файла.
просто файл 65180 если создать - скрипт работает правильно. файл находит. если его удалить - не находит.
Спасибо за помощь!

Ответить | Правка | Cообщить модератору

Оглавление

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


1. "поиск выржения в названиях файлов"  +1 +/
Сообщение от михалыч (ok) on 16-Фев-14, 11:54 
> запрос mysql возвращает 65180
> директория содержит файлы shift_65180_16.02.14.tgz, shift_65170_15.02.14.tgz ну и так
> далее
> В общем - выражение из базы содержится в названии файла.
> просто файл 65180 если создать - скрипт работает правильно. файл находит. если
> его удалить - не находит.
> Спасибо за помощь!

а так

DIR=/home/konsai/test
CSHIFT=`mysql -u konsai test -N -e "select max(shiftno) from shiftslog"`
ls $DIR | grep -q $CSHIFT
if [ $? -eq 0 ];
  then echo "есть такой файл" $CSHIFT
else
  echo "Нет такого файла"
fi

c find'ом у меня так вышло

DIR=/home/konsai/test
CSHIFT=`mysql -u konsai test -N -e "select max(shiftno) from shiftslog"`
if [ -n "$(find $DIR -name "*$CSHIFT*")" ];
  then echo "есть такой файл" $CSHIFT
else
  echo "Нет такого файла"
fi

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "поиск выржения в названиях файлов"  +/
Сообщение от konsai (ok) on 16-Фев-14, 19:08 
Михалыч, это пять
второй вариант меня устроил больше, потому что, он хотя бы выводит результат в консоли если просто ввести find -name "*65180*"
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "поиск выржения в названиях файлов"  +1 +/
Сообщение от михалыч (ok) on 16-Фев-14, 19:18 
> Михалыч, это пять
> второй вариант меня устроил больше, потому что, он хотя бы выводит результат
> в консоли если просто ввести find -name "*65180*"

гыг-гыг.. я думал нужно просто получить да - нет, есть такой файл или нет
а так, в первом варианте из grep убрать ключик -q ( quiet/тихий ) и будет выводить то что найдёт

вот так, с цифирькой -1 (один) оно идеологически для grep'а даже правильнее
ls -1 $DIR | grep "$CSHIFT"

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "поиск выржения в названиях файлов"  +/
Сообщение от konsai (ok) on 16-Фев-14, 20:02 
каюсь ... в матчасти слаб.. пойду посыплю бошку пеплом!
Спасибо еще раз!


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

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

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




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

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