Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / bash: Можно ли в переменной присоединить префикс к списку без цикла? / 4 сообщений из 4, страница 1 из 1
13.09.2013, 10:49
    #38395617
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bash: Можно ли в переменной присоединить префикс к списку без цикла?
Есть в скрипте две переменные:
Код: plaintext
1.
2.
BASE=/basedir
DIRS=subdir1:subdir2/dir:subdir3
BASE — это базовый каталог, DIRS — это список подкаталогов, разделенных двоеточием.

Мне нужно из этого получить такой результат:
Код: plaintext
/basedir/subdir1 /basedir/subdir2/dir /basedir/subdir3
То есть мне нужно получить список подкаталогов с полными путями, разделенных пробелом.

Можно ли такое сделать в "однострочнике", без цикла?

________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
13.09.2013, 12:14
    #38395828
Пухлый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bash: Можно ли в переменной присоединить префикс к списку без цикла?
Alibek B.,

echo $DIRS | awk -F":" '{ORS = " "; for (i=1; i<=NF; i++) print "'$BASE'/"$i }'
...
Рейтинг: 0 / 0
13.09.2013, 13:10
    #38395941
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bash: Можно ли в переменной присоединить префикс к списку без цикла?
С awk это как-то перебор.
Я пока сделал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
BASE=/basedir
DIRS=(subdir1 subdir2/dir subdir3)
for i in ${DIRS[@]/#/$BASE/}
do
        D="$D$i "
done
echo $D
Хотелось бы что-нибудь поизящнее, но без тяжелой артеллерии в виде awk или perl.
...
Рейтинг: 0 / 0
13.09.2013, 13:38
    #38395993
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bash: Можно ли в переменной присоединить префикс к списку без цикла?
Как вариант
Код: sql
1.
2.
3.
4.
$ BASE=/basedir
$ DIRS=subdir1,subdir2/dir,subdir3
$ eval echo $BASE/{$DIRS}
/basedir/subdir1 /basedir/subdir2/dir /basedir/subdir3



Или без переменных
Код: sql
1.
2.
$ echo /basedir/{subdir1,subdir2/dir,subdir3}
/basedir/subdir1 /basedir/subdir2/dir /basedir/subdir3
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / bash: Можно ли в переменной присоединить префикс к списку без цикла? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]