The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Найти все файлы в папке кроме последнего."
Отправлено allez, 28-Дек-06 19:15 
>Скрипт не запустился, ругается на параметры грепа.
>Если не сложно, можно по шагам объяснить процедуру действа? :)

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

find /dir -name "*.svl" | grep -v `lsof | grep "/dir" | sed 's/  */ /g' | awk '{print $NF}' | uniq` | xargs gzip
А сейчас приступим к разбору. И начнем его с последовательности команд, заключенных в
обратные кавычки:
lsof | grep " /dir" | sed 's/  */ /g' | awk '{print $NF}' | uniq
Происходит тут следующее:

1. Команда lsof формирует список открытых файлов.
2. Команда grep "/dir" отбирает из этого списка строки, содержащие "/dir".
3. Команда sed 's/  */ /g' заменяет в отобранных строках последовательности из двух
и более пробелов на один.
4. Команда awk '{print $NF}' выводит на печать только последнее поле в полученых
строках (в нем как раз и содержится имя файла).
5. Команда uniq удаляет повторяющиеся строки (это на случай, если файл открыт более чем
одним процессом).

Итак, мы получили имя открытого файла. Оно передается в качестве аргумента команде
grep -v для того, чтобы исключить этот файл из вывода команды find /dir -name "*.svl".
И, наконец, имена остальных файлов через xargs передаются на вход команды gzip.

Уф-ф, вроде бы все. Какое, однако, монументальное объяснение получилось. :-)

P. S. Да, чуть не забыл: не могли бы вы сообщить, какой ОС пользуетесь и какие именно
сообщения об ошибках вам были выданы (просто скопируйте их и покажите здесь)?

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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