The OpenNET Project / Index page

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

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

"подскажите по sh скриптам"  
Сообщение от asd1221 email(ok) on 24-Дек-07, 13:00 
надо с помощью sh немного переделать строку.

Например файлу передается параметр  ${1}  /mnt/LinuxDVR/imgs/85/00/1-20071224123939-02.jpg
До имени файла может быть разное количество символов.
Надо поменять строку на такую
/mnt/LinuxDVR/imgs/85/00/1-20071224123939.avi
В имени файла всегда одинаковое количество символов, тоесть по шаблону.

Можно ли это сделать на sh?
Подскажите как.
Заранее спасибо.:)

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

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


1. "подскажите по sh скриптам"  
Сообщение от DogEater email(ok) on 24-Дек-07, 13:03 
>[оверквотинг удален]
>
>Например файлу передается параметр  ${1}  /mnt/LinuxDVR/imgs/85/00/1-20071224123939-02.jpg
>До имени файла может быть разное количество символов.
>Надо поменять строку на такую
>/mnt/LinuxDVR/imgs/85/00/1-20071224123939.avi
>В имени файла всегда одинаковое количество символов, тоесть по шаблону.
>
>Можно ли это сделать на sh?
>Подскажите как.
>Заранее спасибо.:)

man basename и будет тебе щасте

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "подскажите по sh скриптам"  
Сообщение от newser (ok) on 24-Дек-07, 13:22 
>[оверквотинг удален]
>>До имени файла может быть разное количество символов.
>>Надо поменять строку на такую
>>/mnt/LinuxDVR/imgs/85/00/1-20071224123939.avi
>>В имени файла всегда одинаковое количество символов, тоесть по шаблону.
>>
>>Можно ли это сделать на sh?
>>Подскажите как.
>>Заранее спасибо.:)
>
>man basename и будет тебе щасте

Добавлю ещё man sed. :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "подскажите по sh скриптам"  
Сообщение от asd1221 email(ok) on 24-Дек-07, 13:25 

>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 символов?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "подскажите по sh скриптам"  
Сообщение от exn (??) on 24-Дек-07, 20:20 
DIR=`dirname $1`
FILE=`basename $1 $2`
echo "$DIR/$FILE$3"


если передать такую строку
/et/cadfdf/asdfdf.jpg jpg avi

выйдет такая
/et/cadfdf/asdfdf.avi

тоесть 1й сам путь, 2й расширение, и 3й на что меняем

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "подскажите по sh скриптам"  
Сообщение от exn (??) on 24-Дек-07, 20:21 
а вообще изврат. лучше sed
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "подскажите по sh скриптам"  
Сообщение от Varda on 24-Дек-07, 20:53 
В чём беда?

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "подскажите по sh скриптам"  
Сообщение от asd1221 email(ok) on 25-Дек-07, 09:02 
Всем спасибо.
Прочитав man sed, сделал так:

echo "/mnt/LinuxDVR/imgs/85/00/1-20071224123939-02.jpg" | sed -e 's/-...jpg/.avi/g'

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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