[CLOSED]команда sed
damnbook ~ % cat test
x x test x
test x
damnbook ~ % sed "s|x|[$\{a[@]:0\}]|g" test
[${a[@]:0}] [${a[@]:0}] test [${a[@]:0}]
test [${a[@]:0}]
самое терпимое, что пришло пока в голову, b=$(echo ${a[@]:0}); echo "xx" | sed "s:xx:${b}:g"
а разве b=$a[@]:0 не работает, как надо? к чему такие замуты с echo?
фишка в том, что мы заменяем вектор на текстовую строку с помощью echo, иначе ты получишь еще один вектор b
по правде сказать, вообще впервые столкнулся с векторами в шелле... и гугл ничего не гуглит, и man показывает doxygen-инфу из STL... не дашь ссылку на мануал?
вот к примеру:
а причем тут sed и unix если у тебя проблема с bash(1) ?
да все так:)
по теме сдаюсь, в такие дебри шелла мне лезть не приходилось
ясно, только я не понял, при чём здесь вектор, когда это string arrayя его так назвал, потому что в качестве элементов у меня числа. сам не вдаюсь в дебри)
$ cat b.sh
a[0]=1
a[1]=2
a[2]=3
b="${a[@]:1}"
echo $b
$ bash b.sh
2 3
Или я чего-то не понимаю?
$ cat b.sh
a[0]=1
a[1]=2
a[2]=3
echo 'x x more x' | awk "{gsub(\"x\", \"${a[*]:1}\"); print}"
echo "x x more x" | sed "s/x/${a[*]:1}/g"
$ bash b.sh
2 3 2 3 more 2 3
2 3 2 3 more 2 3
А поскольку он у тебя численный, тебе должно быть пофигу, звезда или собака.
(Собственно, "не ограниченный s" - на самом деле, неоконченный - возникал как раз из-за разницы между @ и *.)
А поскольку он у тебя численный, тебе должно быть пофигу, звезда или собака.понял. спасибо)
(Собственно, "не ограниченный s" - на самом деле, неоконченный - возникал как раз из-за разницы между @ и *.)
Оставить комментарий
egoregor
как подставить sed "s|x|[${a[@]:0}]|g" все перепробовал, то жалуется на ':0' как опцию, то говорит не ограниченный s.надо заменить x на вектор ${a[@]:0}