Муравьиный эквивалент среза |сортировать |уник - PullRequest
2 голосов
/ 09 июня 2011

В задаче Ant я устанавливаю свойство, представляющее собой список файлов. например,

web/src/main/test/com/whatever/Ralph
business/src/main/test/com/whatever/Alice
web/src/main/test/com/whatever/Bob

Я хотел бы извлечь набор подкаталогов из этого списка. В баш я бы:

$ cat filename | cut -d'/' -f1 | sort | uniq
business
web

Есть ли способ сделать что-то подобное в макросе Ant? Он также должен работать в Windows, поэтому <exec> не вариант.

1 Ответ

2 голосов
/ 09 июня 2011

Вы можете сделать это, используя loadresource задачу с filterchain . Возможно, что-то вроде этого:

<property name="list.of.files">
web/src/main/test/com/whatever/Ralph
business/src/main/test/com/whatever/Alice
web/src/main/test/com/whatever/Bob
</property>

<loadresource property="dirs">
    <string value="${list.of.files}" />
    <filterchain>
        <replaceregex pattern="/.*" replace="" />
        <sortfilter />
        <uniqfilter />
    </filterchain>
</loadresource>

<echo message="${dirs}" />

Результат:

 [echo] business
 [echo] web

BUILD SUCCESSFUL

В более старых версиях Ant (<1.7) вы могли сделать то же самое, записав свойство в файл, а затем используя задачу <code>loadfile с filterchain.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...