Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: помогите вырезать строку в sh скрипте  (Прочитано 1721 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vachtang

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
добрый день,

у меня проблема с shell sh скриптом

имеется переменная file_path равная:

/home/gogi/Projects/15.ru/slave/blocks/Testing1/block.php
требуется, чтоб после примения функции или какой нибудь замены file_path стал равным:

/15.ru/slave/blocks/Testing1/block.php
то есть из начальной переменной  file_path надо вырезать слева всё до "/15.ru/slave/blocks/Testing1/block.php"

благодарю за ответ, уже который день ищу решение проблемы
« Последнее редактирование: 12 Августа 2008, 14:59:04 от vachtang »

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: помогите вырезать строку в sh скрипте
« Ответ #1 : 12 Августа 2008, 15:20:28 »
имеется переменная file_path равная:
/home/gogi/Projects/15.ru/slave/blocks/Testing1/block.phpтребуется, чтоб после примения функции или какой нибудь замены file_path стал равным:
/15.ru/slave/blocks/Testing1/block.phpто есть из начальной переменной  file_path надо вырезать слева всё до "/15.ru/slave/blocks/Testing1/block.php"

По какому принципу отрезается начало?
Если это фиксированный путь, то
file_path=`echo $file_path | sed -e 's/\/home\/gogi\/Projects//'`

Если же требуется вырезать определенное количество директорий сверху, то awk и split ( http://www.starlink.rl.ac.uk/star/docs/sc4.htx/node39.html )
« Последнее редактирование: 12 Августа 2008, 15:26:04 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн vachtang

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: помогите вырезать строку в sh скрипте
« Ответ #2 : 12 Августа 2008, 15:26:41 »
спасибо буду разбираться

Оффлайн vachtang

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: помогите вырезать строку в sh скрипте
« Ответ #3 : 12 Августа 2008, 16:35:49 »
имеется переменная file_path равная:
/home/gogi/Projects/15.ru/slave/blocks/Testing1/block.phpтребуется, чтоб после примения функции или какой нибудь замены file_path стал равным:
/15.ru/slave/blocks/Testing1/block.phpто есть из начальной переменной  file_path надо вырезать слева всё до "/15.ru/slave/blocks/Testing1/block.php"

По какому принципу отрезается начало?
Если это фиксированный путь, то
file_path=`echo $file_path | sed -e 's/\/home\/gogi\/Projects//'`

Если же требуется вырезать определенное количество директорий сверху, то awk и split ( http://www.starlink.rl.ac.uk/star/docs/sc4.htx/node39.html )

wl не могли бы ещё пример с awp и split привести
дело в том что я начинающий пользователь Linux не очень получается
спасибо

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: помогите вырезать строку в sh скрипте
« Ответ #4 : 12 Августа 2008, 17:02:06 »
wl не могли бы ещё пример с awk и split привести
дело в том что я начинающий пользователь Linux не очень получается
спасибо

Последний пример в ссылке, там даже без split-a

fp=`echo $file_path | awk 'BEGIN{FS="/"}{for (i=5; i<=NF; i++) printf "/%s",$i}'`
Что происходит, там же описано.
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

 

Страница сгенерирована за 0.093 секунд. Запросов: 25.