![]() |
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| В. Г. hpux доступных файлов устройств, но отсутствует! | mariusp | Файловые системы, диски и память | 1 | 02-10-2007 03:18 PM |
| Проверка отсутствующих файлов в стороне папки | Nayanajith | UNIX для чайников Вопросы И Ответы | 4 | 06-26-2006 07:05 AM |
| Отсутствующие файлы инициализации для zsh и Баш | Мааг | SUN Solaris | 2 | 05-04-2006 05:37 PM |
| Пропавшие библиотеки файлов | jays337 | UNIX для чайников Вопросы И Ответы | 5 | 08-18-2005 09:23 PM |
| файлы отсутствуют | кабина ^ житель | UNIX для чайников Вопросы И Ответы | 4 | 09-22-2003 04:10 PM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Как проверить недостающие файлы?
У меня 50 файлов в этом каталоге (/ Home / unixnewbie / wklyfiles), а именно:
statistics.1 statistics.2 statistics.3 statistics.4 statistics.5 statistics.6 statistics.7 statistics.8 statistics.9 statistics.10 .... statistics.20 .... statistics.50 Как определить, если все там будут какие-то файлы, отсутствующие в там? И как знать, какие точные эти файлы? Как например, statistics.5, statistics.9, statistics.20 и statistics.35 файл отсутствует на этой неделе. Спасибо заранее. |
|
||||
|
Создайте список всех файлов, которые должны быть там, и сравнить. Код:
perl -le 'for my $i (1..50) { print "missing: statistics.$i" unless -f "statistics.$i" }'
Я имел в виду для Perl Скрипт просто создать список, но это оказалось так легко делать все это в Perl. К сожалению, люди (-: Просто для иллюстрации моего первоначального предложения, то вот еще один подход, используя только простые команды оболочки: Код:
yes . | head -50 | nl | sed -e 's/^ *\([1-9][0-9]*\) .*/statistics.\1/' >list ls -rt statistics.* | diff list - Файл "список" создается с NL Утилита иметь порядковые номера, а также имя файла префикс добавляется с помощью SED. (Это вышло довольно пыткам, - это несомненно будет намного проще с AWK, но давайте просто скажем, что использование языков сценариев будут обманывать, ладно?) Затем мы сравним этот список в отношении фактического перечисления директории. Для этого необходимо, чтобы ваш дифф принимает "-" означает "читать другой файл со стандартного ввода; в противном случае вам необходимо использовать две временные файлы. (Не забудьте удалить их, когда вы закончите.) Последний раз редактировалось эры; на 04-26-2008 01:34 PM.. Основание: альтернативный подход, только для примера |
|
||||
|
Wow большое, спасибо много эру!
![]() Надеюсь, вы не возражаете последующий вопрос, что если я хочу сохранить в файле, всех тех, имеющиеся статистические данные? И так же просто поставить на этих пространствах недостающие файлы? ![]() Пример \u003d\u003d> statistics.1; statistics.2; statistics.3; statistics.4; <space>; statistics.6 ;...... statistics.19; <space>; statistics.21 ;...... статистики. 34; <space> ;.... statistics.50 Ммм .. |
|
||||
|
Код:
perl -e 'for my $i (1..50) { my $f = "statistics.$i"; print ($i > 1 ? ";" : ""), (-f "$f" ? "$f" : " ") }
print "\n"'
В "если? Потом: иначе" построить является довольно сложно разобраться в первый, но и для довольно простой логике после того, как вы понимаете, как она работает. |
|
||||
|
Другая Баш решение: Код:
#!/bin/bash
for nbr in $(seq 50); do
if [ ! -e "statistics.$nbr" ]; then echo "statistics.$nbr is missing"; fi
done
За один-вкладыши фанатики: Код:
for nbr in $(seq 50); do if [ ! -e "statistics.$nbr" ]; then echo "statistics.$nbr is missing"; fi; done |
|
||||
|
Надлежащие фанатики будут, возможно, предпочитают Код:
for n in $(seq 50); do [ -e statistics.$n ] || echo statistics.$n is missing; done след не является универсальным, поэтому я начал с Perl, Но если у вас есть ее, она прекрасно подходит для такого рода работы. |
|
||||
|
К сожалению, последующие doesn't работы
![]() след: команда не найдена Любые другие Unix сценариев линий возможно? Кстати, я использую KSH. Спасибо! |
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|