надо с помощью sh немного переделать строку.Например файлу передается параметр ${1} /mnt/LinuxDVR/imgs/85/00/1-20071224123939-02.jpg
До имени файла может быть разное количество символов.
Надо поменять строку на такую
/mnt/LinuxDVR/imgs/85/00/1-20071224123939.avi
В имени файла всегда одинаковое количество символов, тоесть по шаблону.Можно ли это сделать на sh?
Подскажите как.
Заранее спасибо.:)
>[оверквотинг удален]
>
>Например файлу передается параметр ${1} /mnt/LinuxDVR/imgs/85/00/1-20071224123939-02.jpg
>До имени файла может быть разное количество символов.
>Надо поменять строку на такую
>/mnt/LinuxDVR/imgs/85/00/1-20071224123939.avi
>В имени файла всегда одинаковое количество символов, тоесть по шаблону.
>
>Можно ли это сделать на sh?
>Подскажите как.
>Заранее спасибо.:)man basename и будет тебе щасте
>[оверквотинг удален]
>>До имени файла может быть разное количество символов.
>>Надо поменять строку на такую
>>/mnt/LinuxDVR/imgs/85/00/1-20071224123939.avi
>>В имени файла всегда одинаковое количество символов, тоесть по шаблону.
>>
>>Можно ли это сделать на sh?
>>Подскажите как.
>>Заранее спасибо.:)
>
>man basename и будет тебе щастеДобавлю ещё man sed. :)
>man basename и будет тебе щастещасте почти наступило, но не до конца.
С помощью такого
basename /mnt/LinuxDVR/imgs/85/00/1-20071224123939-02.jpg .jpg
получается такое
1-20071224123939-02соответсвенно
basename /mnt/LinuxDVR/imgs/85/00/1-20071224123939-02.jpg -02.jpg
дает такое
1-20071224123939Как мне выдрать этот 02 в конце, или просто убрать последнии 7 символов?
DIR=`dirname $1`
FILE=`basename $1 $2`
echo "$DIR/$FILE$3"
если передать такую строку
/et/cadfdf/asdfdf.jpg jpg aviвыйдет такая
/et/cadfdf/asdfdf.aviтоесть 1й сам путь, 2й расширение, и 3й на что меняем
а вообще изврат. лучше sed
В чём беда?basename "/mnt/LinuxDVR/imgs/85/00/1-20071224123939-02.jpg .jpg" | \
cut -d "-" -f 1-2вывод:
1-20071224123939
for file in *.avi; do
echo $(basename "$file" | cut -d "-" -f 1-2).jpg
done
Всем спасибо.
Прочитав man sed, сделал так:echo "/mnt/LinuxDVR/imgs/85/00/1-20071224123939-02.jpg" | sed -e 's/-...jpg/.avi/g'