The OpenNET Project / Index page

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

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

"Нужно подчистить хранилище картинок"  +/
Сообщение от universite email(ok) on 04-Янв-14, 15:36 

Есть хранилище кадров с видеокамеры.
Директории вида - /video/home/2013/09/17/02
Содержимое директории:


snap-02.00.00.jpg
snap-02.00.05.jpg
snap-02.00.10.jpg
snap-02.00.14.jpg
snap-02.00.18.jpg
snap-02.00.22.jpg
snap-02.00.26.jpg
snap-02.00.30.jpg
snap-02.00.34.jpg
snap-02.00.38.jpg
snap-02.00.43.jpg
snap-02.00.47.jpg
snap-02.00.51.jpg
snap-02.00.55.jpg
...

Как оставить, например, каждый 5-тый кадр и удалить остальные?

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

Оглавление

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


1. "Нужно подчистить хранилище картинок"  +/
Сообщение от pavel_simple (ok) on 04-Янв-14, 19:04 
>[оверквотинг удален]
> snap-02.00.30.jpg
> snap-02.00.34.jpg
> snap-02.00.38.jpg
> snap-02.00.43.jpg
> snap-02.00.47.jpg
> snap-02.00.51.jpg
> snap-02.00.55.jpg
> ...
>
> Как оставить, например, каждый 5-тый кадр и удалить остальные?

awk 'NR%5==0'

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

2. "Нужно подчистить хранилище картинок"  +/
Сообщение от universite email(ok) on 04-Янв-14, 19:40 

> awk 'NR%5==0'

Логики работы не понятная.


# ll
total 5
-rw-r--r--  1 root  wheel  985 21 сен 01:10 Makefile
-rw-r--r--  1 root  wheel  128 14 июл  2012 distinfo
drwxr-xr-x  2 root  wheel    9 12 окт 22:22 files
-rw-r--r--  1 root  wheel  134 14 июл  2012 pkg-descr
# ll | awk 'NR%2==0'
-rw-r--r--  1 root  wheel  985 21 сен 01:10 Makefile
drwxr-xr-x  2 root  wheel    9 12 окт 22:22 files
# ll | awk 'NR%3==0'
-rw-r--r--  1 root  wheel  128 14 июл  2012 distinfo
# ll | awk 'NR%4==0'
drwxr-xr-x  2 root  wheel    9 12 окт 22:22 files
# ll | awk 'NR%5==0'
-rw-r--r--  1 root  wheel  134 14 июл  2012 pkg-descr

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

3. "Нужно подчистить хранилище картинок"  +/
Сообщение от pavel_simple (ok) on 04-Янв-14, 23:09 
>> awk 'NR%5==0'
> Логики работы не понятная.

какие роботы? непонятная кто? man не перевели? кто такой ll? No manual entry for ll.

       NR          The total number of input records seen so far.
http://www.gnu.org/software/gawk/manual/html_node/Arithmetic...
x % y
    Remainder; further discussion is provided in the text, just after this list.
When computing the remainder of ‘x % y’, the quotient is rounded toward zero to an integer and multiplied by y. This result is subtracted from x; this operation is sometimes known as “trunc-mod.” The following relation always holds:

     b * int(a / b) + (a % b) == a

"==" объяснять?

>[оверквотинг удален]
> # ll | awk 'NR%3==0'
> -rw-r--r--  1 root  wheel  128 14 июл  2012
> distinfo
> # ll | awk 'NR%4==0'
> drwxr-xr-x  2 root  wheel    9 12 окт
> 22:22 files
> # ll | awk 'NR%5==0'
> -rw-r--r--  1 root  wheel  134 14 июл  2012
> pkg-descr
>

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

5. "Нужно подчистить хранилище картинок"  +/
Сообщение от universite email(ok) on 05-Янв-14, 00:23 
>>> awk 'NR%5==0'
>> Логики работы не понятная.
> какие роботы? непонятная кто? man не перевели? кто такой ll? No manual
> entry for ll.
>        NR    
>      The total number of input records
> seen so far.
> http://www.gnu.org/software/gawk/manual/html_node/Arithmetic...
> x % y

Этот операнд не подходит условию задачи.
На досуге, протестируйте его на списке из 20-30 элементов.

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

8. "Нужно подчистить хранилище картинок"  +/
Сообщение от Andrey Mitrofanov on 05-Янв-14, 00:35 
>>>> awk 'NR%5==0'
> На досуге, протестируйте его на списке из 20-30 элементов.

Done!

$ seq 31 |awk 'NR%5==0'
5
10
15
20
25
30
$ _

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

4. "Нужно подчистить хранилище картинок"  +/
Сообщение от Andrey Mitrofanov on 04-Янв-14, 23:18 
>> awk 'NR%5==0'
> Логики работы не понятная.

$ cd /video/home/2013/09/17/02
$ ls |awk 'NR%5!=0' |xargs rm

Лучше?

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

6. "Нужно подчистить хранилище картинок"  +/
Сообщение от universite email(ok) on 05-Янв-14, 00:24 
>>> awk 'NR%5==0'
>> Логики работы не понятная.
> $ cd /video/home/2013/09/17/02
> $ ls |awk 'NR%5!=0' |xargs rm
> Лучше?

Тоже, только в профиль.
Нужно оставить 1,6,11,16.. элементы массива.

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

7. "Нужно подчистить хранилище картинок"  +/
Сообщение от Andrey Mitrofanov on 05-Янв-14, 00:32 
>> $ ls |awk 'NR%5!=0' |xargs rm
>> Лучше?
> Тоже, только в профиль.

В смысле не понятно?

> Нужно оставить 1,6,11,16.. элементы массива.

ls |awk 'NR%5!=1' |xargs rm

Но соответственно в предположении, что имена в "нужном" порядке выдаются ls-ом (на linux-ах == лексикографический порядок = правильный), и что "высший" разум не будет это пускать два раза на одну и теж директорию.

Ну, мож
   ls snap-*.png |awk ...
, если там поддиректории или др.файлы.

Если хочется "математики", а не однострочник-хак, то, боюсь, однозначную или хотя достаточную постановку будет очень сложно в форуме получитью

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

9. "Нужно подчистить хранилище картинок"  +/
Сообщение от universite email(ok) on 05-Янв-14, 00:50 
>>> $ ls |awk 'NR%5!=0' |xargs rm
>>> Лучше?
>> Тоже, только в профиль.
> В смысле не понятно?
>> Нужно оставить 1,6,11,16.. элементы массива.
> Если хочется "математики", а не однострочник-хак, то, боюсь, однозначную или хотя достаточную
> постановку будет очень сложно в форуме получитью

Пасиб, понял, что надо копать в сторону awk.
Проверю на длинном списке, как работает NR, если он действительно будет выбирать каждый 5 элемент списка, хоть и не с 1-го элемента, тогда, наверное, на нем и остановлюсь.

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

10. "Нужно подчистить хранилище картинок"  +/
Сообщение от universite email(ok) on 05-Янв-14, 00:54 
>[оверквотинг удален]
>>>> Лучше?
>>> Тоже, только в профиль.
>> В смысле не понятно?
>>> Нужно оставить 1,6,11,16.. элементы массива.
>> Если хочется "математики", а не однострочник-хак, то, боюсь, однозначную или хотя достаточную
>> постановку будет очень сложно в форуме получитью
> Пасиб, понял, что надо копать в сторону awk.
> Проверю на длинном списке, как работает NR, если он действительно будет выбирать
> каждый 5 элемент списка, хоть и не с 1-го элемента, тогда,
> наверное, на нем и остановлюсь.

Вот так оставлю.


awk 'NR%5-1==0'

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

12. "Нужно подчистить хранилище картинок"  +/
Сообщение от pavel_simple (ok) on 05-Янв-14, 02:42 
>[оверквотинг удален]
>>> Если хочется "математики", а не однострочник-хак, то, боюсь, однозначную или хотя достаточную
>>> постановку будет очень сложно в форуме получитью
>> Пасиб, понял, что надо копать в сторону awk.
>> Проверю на длинном списке, как работает NR, если он действительно будет выбирать
>> каждый 5 элемент списка, хоть и не с 1-го элемента, тогда,
>> наверное, на нем и остановлюсь.
> Вот так оставлю.
>
 
> awk 'NR%5-1==0'
>

я таки непонял -- чем 'NR%5==1' не подошло? с арифметикой туговато?

find для обхода -- да!

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

11. "Нужно подчистить хранилище картинок"  +/
Сообщение от universite email(ok) on 05-Янв-14, 00:56 
>[оверквотинг удален]
> snap-02.00.30.jpg
> snap-02.00.34.jpg
> snap-02.00.38.jpg
> snap-02.00.43.jpg
> snap-02.00.47.jpg
> snap-02.00.51.jpg
> snap-02.00.55.jpg
> ...
>
> Как оставить, например, каждый 5-тый кадр и удалить остальные?

Еще под-вопрос.

Чем обходить эти директории?
Через find?


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

14. "Нужно подчистить хранилище картинок"  +/
Сообщение от pavlinux (ok) on 07-Янв-14, 20:44 
> Чем обходить эти директории?
> Через find?

1.
for i in `find . -type d`
do
    cd $i;
          exec ля-ля-ля;
    сd -;
done;

2.
for i in `find . -type d`
do
    pushd .;
    cd $i;
          exec ля-ля-ля;
    popd;
done;

3. find -type d | xargs exec ля-ля-ля

4. find -type d -exec ля-ля-ля {} \;

5. ls -R | но тут с модальной алгеброй сложнее.

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

15. "Нужно подчистить хранилище картинок"  +/
Сообщение от Pahanivo (ok) on 10-Янв-14, 09:28 
> for i in `find . -type d`

и

> xargs rm

при таком подходе я бы крайне осмотрительно использовал пути в find - абсолютные однозначно, а то можно много веселья поиметь )))

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

16. "Нужно подчистить хранилище картинок"  +/
Сообщение от pavel_simple (ok) on 10-Янв-14, 09:55 
>> for i in `find . -type d`
> и
>> xargs rm
> при таком подходе я бы крайне осмотрительно использовал пути в find -
> абсолютные однозначно, а то можно много веселья поиметь )))

именно, только - print0 | xargs -0

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

17. "Нужно подчистить хранилище картинок"  +/
Сообщение от universite email(ok) on 02-Мрт-14, 18:22 
>> Чем обходить эти директории?
>> Через find?
> 1.
> for i in `find . -type d`
>  do
>     cd $i;
>           exec ля-ля-ля;
>     сd -;
> done;


for i in `find $dir -type d`
do
    cd $i;
    ls $i | awk 'NR%5!=1'
done;

Проблема в том, что я получаю список всех директорий, а не _только_ последнего уровня.

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

18. "Нужно подчистить хранилище картинок"  +/
Сообщение от universite email(ok) on 02-Мрт-14, 18:58 


find $i -maxdepth 1 -type f -name "snap-*.jpg" | awk 'NR%5!=1' | xargs -I{} -n1 rm {}

Вообще список странный строит. 10% файлов гробит зря...
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

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

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




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

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