Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [*NIX] Помогите написать скрипт


Автор: Okioki 22.4.2009, 16:57
Помогите написать скрипт, пожалуйста. Цель: найти файлы в /etc , которые были созданы в парные месяца.
Заранее огромное спасибо. 

Автор: nickless 23.4.2009, 03:24
Okioki, так а в чем проблема? Если помочь = написать за меня, то это уже в "Центр помощи"...

Автор: InvalidProperty 23.4.2009, 08:25
nickless, да ладно, поможем человеку, не звери ж ведь smile

Okioki, если ты имеешь ввиду четные дни месяца, то задача решается следующим образом:
Код

#! /bin/sh

filez=''
for i in `find /etc -type f` ; do
 day=`stat --printf="%z\n" "$i" | sed 's/[0-9]\{4\}\-[0-9]\{2\}\-\([0-9]\{2\}\)\ .\+/\1/'`
 if [ $day -eq $(($day / 2 * 2)) ] ; then
  filez="${filez} ${i}"
  echo "$day $i"
 fi
done

if [ -z "$filez" ] ; then
 echo "No files found"
else
 echo "done"
fi


тут я тебе даже день месяца вывожу, чтобы ты удостоверился, что он четный smile Ежели тебе просто нужно массив этих файлов получить для дальнейшего использования в скрипте - закаменть 8 строку. Если тебе нужно просто вывести файлы - немного переделай скрипт smile . Ежели тебе нужны подробности по работе какой-либо из команд - поступай следующим образом:
  •  man КОМАНДА
  •  постим вопрос сюда
небольшая подсказка по командам:
то, что в условии if заключено в квадратные скобки обрабатывается командой test, т.е. нужно смотреть man test, т.к. скобки всего лишь сокращенный вариант записи.

Удачи в пользовании линуксом smile

Автор: Okioki 23.4.2009, 22:02
Оргомное спасибо за проделанную работу. Только мне нужны файлы, которые созданы именно в парные месяца, т.е. 2, 4, 6, 8, 10 и 12. Ещё раз большое спасибо.

Автор: InvalidProperty 23.4.2009, 22:21
товарищ, а Вы, часом, не перегрелись на солнышке? Вы хотя бы скрипт запускали? Или хотябы логику смотрели? Или вообще, хотя бы, знаете, что числа 2, 4, 6 и т.д., т.е вида
Код

2*n

называются четными? Скрипт делает именно то, что нужно Вам, хотя, кроме как от Вас, я ни от кого не слышал, что четные числа называются парными. Я бы еще мог предположить, что парные, это те, которые содержат в двух разрядах одинаковые цифры, т.е. 11, 22, и т.д.

Минус пока ставить Вам не буду, надеюсь на Вашу сознательность.

Автор: nickless 23.4.2009, 23:58
Цитата(InvalidProperty @  23.4.2009,  07:25 Найти цитируемый пост)
да ладно, поможем человеку, не звери ж ведь

Дык мы разве звери? Просто за порядком следим, в частности,
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена из "http://forum.vingrad.ru/Linux-Unix-common-questions.html"! 

Автор: Okioki 23.4.2009, 23:58
Это моя ошибка. Извините. Просто по-украински: парні місяці - это четные месяцы, а я просто оговорился.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)