Нужна помощь с sed

Alex Emergy alex.emergy на gmail.com
Вт Фев 28 20:23:23 UTC 2012


или может так надо?

alexemergy на stub:~$ cat test|grep -Eo '[0-9]{4}-[0-9]{2}-[0-9]{2}'
2012-02-07
2012-02-07
2012-02-07
2012-02-07
2012-02-28
2012-02-28
2012-02-28
2012-02-28
2012-02-28
2012-02-28
2012-02-28
2012-02-28
2012-02-28

Wed Feb 29 00:15:29 2012, Alex Emergy писал:
> Может я что-то не понял, но можно тогда пример, без скрипта, что есть 
> и что должно быть на выходе?
>
> alexemergy на stub:~$ cat test
>
> $ ls -1 /home/motion/CamRecords/ipcam01|head
> 01-20120207104003.avi
> 01-20120207104004-04.jpg
> 01-2012-02-07_12-25-26.avi
> 01-20120207122620-03.jpg
> 02-2012-02-07_12-29-38.avi
> 02-20120207122939-03.jpg
> 03-2012-02-07_12-31-13.avi
> 03-20120207123115-00.jpg
> 04-2012-02-07_12-32-30.avi
> 04-20120207123232-00.jpg
>
> $ ls -1 /home/motion/CamRecords/ipcam01|tail
> 2012-02-28_19-05-55-event-24.avi
> 2012-02-28_19-06-22-03-event-24.jpg
> 2012-02-28_19-09-03-event-25.avi
> 2012-02-28_19-09-16-02-event-25.jpg
> 2012-02-28_19-12-26-event-26.avi
> 2012-02-28_19-13-32-00-event-26.jpg
> 2012-02-28_19-15-48-event-27.avi
> 2012-02-28_19-15-50-00-event-27.jpg
> 2012-02-28_19-18-45-event-28.avi
> Thumbs.db
> alexemergy на stub:~$ cat test|perl -nE 'say $1 if/(\d{4}-\d{2}-\d{2})/'
> 2012-02-07
> 2012-02-07
> 2012-02-07
> 2012-02-07
> 2012-02-28
> 2012-02-28
> 2012-02-28
> 2012-02-28
> 2012-02-28
> 2012-02-28
> 2012-02-28
> 2012-02-28
> 2012-02-28
>
> Tue Feb 28 20:07:02 2012, Тарас Перебейносов писал:
>> Вставил костылик в виде grep. В конце выводится пустая строка. Не 
>> знаю откуда она берется, но как это нее избавиться?
>>
>>
>> folder1="/home/motion/CamRecords/ipcam01"
>> folder2="/home/motion/CamRecords/ipcam02"
>>
>> cd $folder1
>> ls -1 | while read file
>> do
>> # 2012-02-28_18-08-40-04-event-04.jpg
>> # 2012-02-28_18-09-45-event-05.avi
>> folderName=$(echo $file | grep -Pe '^[0-9]{4}-[0-9]{2}-[0-9]{2}' | 
>> sed -re 's/^([0-9]{4}-[0-9]{2}-[0-9]{2})_.+/\1/')
>> if [ "$folderName_old" != "$folderName" ]
>> then
>> echo $folderName
>> fi
>> folderName_old=$folderName
>> done
>>
>>
>> 28 февраля 2012 г. 19:27 пользователь Тарас Перебейносов 
>> <taras.perebeynosov на gmail.com <mailto:taras.perebeynosov на gmail.com>> 
>> написал:
>>
>> Доброго времени суток!
>>
>> Помогите, пожалуйста, разобраться с регулярными выражениями в sed.
>> Я пытаюсь написать скрипт, который будет ежедневно складывать в
>> папочки по датам файлы:
>>
>> $ *ls -1 /home/motion/CamRecords/ipcam01|head*
>> 01-20120207104003.avi
>> 01-20120207104004-04.jpg
>> 01-2012-02-07_12-25-26.avi
>> 01-20120207122620-03.jpg
>> 02-2012-02-07_12-29-38.avi
>> 02-20120207122939-03.jpg
>> 03-2012-02-07_12-31-13.avi
>> 03-20120207123115-00.jpg
>> 04-2012-02-07_12-32-30.avi
>> 04-20120207123232-00.jpg
>>
>> $ *ls -1 /home/motion/CamRecords/ipcam01|tail*
>> 2012-02-28_19-05-55-event-24.avi
>> 2012-02-28_19-06-22-03-event-24.jpg
>> 2012-02-28_19-09-03-event-25.avi
>> 2012-02-28_19-09-16-02-event-25.jpg
>> 2012-02-28_19-12-26-event-26.avi
>> 2012-02-28_19-13-32-00-event-26.jpg
>> 2012-02-28_19-15-48-event-27.avi
>> 2012-02-28_19-15-50-00-event-27.jpg
>> 2012-02-28_19-18-45-event-28.avi
>> Thumbs.db
>>
>> Вот набросок разбора имен:
>>
>> #!/bin/bash
>>
>> folder1="/home/motion/CamRecords/ipcam01"
>> folder2="/home/motion/CamRecords/ipcam02"
>>
>> cd $folder1
>> ls -1 | while read file
>> do
>> # 2012-02-28_18-08-40-04-event-04.jpg
>> # 2012-02-28_18-09-45-event-05.avi
>> folderName=$(echo $file|*sed -re
>> 's/([0-9]{4}-[0-9]{2}-[0-9]{2})_.+/\1/'*)
>> if [ "$folderName_old" != "$folderName" ]
>> then
>> echo $folderName
>> fi
>> folderName_old=$folderName
>> done
>>
>> Я ожидал, что скрипт выведет мне имена для папок, которые нужно
>> создать. Но выводится также и мусор (то, что не подходит под
>> шаблон <YYYY-MM-DD>).
>>
>> $ *./folderOrder.sh |head*
>> 01-20120207104003.avi
>> 01-20120207104004-04.jpg
>> 01-2012-02-07
>> 01-20120207122620-03.jpg
>> 02-2012-02-07
>> 02-20120207122939-03.jpg
>> 03-2012-02-07
>> 03-20120207123115-00.jpg
>> 04-2012-02-07
>> 04-20120207123232-00.jpg
>>
>> $ *./folderOrder.sh |tail*
>> 2012-02-20
>> 2012-02-21
>> 2012-02-22
>> 2012-02-23
>> 2012-02-24
>> 2012-02-25
>> 2012-02-26
>> 2012-02-27
>> 2012-02-28
>> Thumbs.db
>>
>> Как убрать из вывода строки, которые не совпадают с шаблоном
>> <YYYY-MM-DD> ?
>>
>>
>>
>>
>

-- 
Alex Emergy



Подробная информация о списке рассылки ubuntu-ru