Просто маленькое обновление, вино 1.4 в наше время доступно в sid репозитории - просто выполненный apt-get update
и apt-get install wine
.
Исходный ответ:
Вино 1.4-0.1 находится в экспериментальном репозитории. Просто добавьте его к Вашему sources.list
, выполненный apt-get update
и необходимо смочь установить его.
Взгляните на то, Как видеть версию пакета без установки? который показывает rmadison
проверять, который комплект имеет который доступная версия.
Я не мог выяснить, как получить это сделанное использование только фигурные скобки. Я не вижу способ достигнуть этого также, поэтому если кто-то более умный, чем я не могу выяснить способ, которым я сказал бы, что это не возможно.
Демонстрационные данные
$ tree
.
|-- dir1
| |-- file1
| `-- file2
`-- dir2
|-- file1
`-- file2
$ seq 2 | xargs -i{} echo dir{}/file{}
dir1/file1
dir2/file2
Это может быть помещено в команду как это:
$ echo $(seq 2 | xargs -i{} echo dir{}/file{})
dir1/file1 dir2/file2
или это:
$ ls $(seq 2 | xargs -i{} echo dir{}/file{})
dir1/file1 dir2/file2
или это:
$ ls -l $(seq 2 | xargs -i{} echo dir{}/file{})
-rw-rw-r-- 1 saml saml 0 Sep 2 03:18 dir1/file1
-rw-rw-r-- 1 saml saml 0 Sep 2 03:31 dir2/file2
Если Вы смотрите на свой исходный пример:
{foo,bar}Q{foo,bar}
Путем это расширено, следующие:
fooQfoo fooQbar barQfoo barQbar
Механизм, который развернул это, называют Декартовым произведением.
Например:
$ echo {A,B}{X,Y,Z}
AX AY AZ BX BY BZ
Или это:
$ echo {M,N}-{A,B}{X,Y,Z}
M-AX M-AY M-AZ M-BX M-BY M-BZ N-AX N-AY N-AZ N-BX N-BY N-BZ
Нет никакого способа создать Декартово произведение, которое приведет к:
fooQfoo barQbar
Вы - только опция, должен или обратиться к обману, такому как это:
$ echo dir{1,2}/file{2,1}
dir1/file2 dir1/file1 dir2/file2 dir2/file1
И затем помещенный это в массив Bash:
$ a=(dir{1,2}/file{2,1})
$ echo ${a[@]:1:2}
dir1/file1 dir2/file2
Другая опция была бы некоторым "другим методом", таким как тот, который я ранее обсудил выше (использование xargs
) например.
Я соглашаюсь с slm; я никогда не видел способ сделать это только с расширением фигурной скобки.
Однако с помощью примера в вопросе, я думаю, что самый простой способ получить желаемый вывод состоит в том, чтобы использовать цикл, а не заключить в фигурные скобки расширение и дополнительную постобработку:
$ echo $(for X in foo bar;do echo ${X}Q${X};done)
fooQfoo barQbar
xargs
решение будет работать в целом, но кажется слишком сложным для простого решения, которое я ищу (см. мое редактирование, если оно делает его немного более ясным). Я мог взять не для ответа, если существует некоторая причина позади. – Bernhard 02.09.2013, 14:07.*
является жадным как это также. Однако langs. обеспечивают механизмы для "управления" им. – slm♦ 02.09.2013, 18:11{foo,bar}Q{}
– Bernhard 02.09.2013, 18:36echo {w,t,}h{e{n{,ce{,forth}},re{,in,fore,with{,al}}},ither,at}
– slm♦ 02.09.2013, 19:37