Найти число вхождений конкретного символа, такого как запятая, в строку, используя скрипт ant? - PullRequest
0 голосов
/ 04 октября 2018
<project>
<target name="test">
<property name="src.dir" value="src" />
<property name="search4" value=","/>
<fileset id="existing" dir="${src.dir}/src">
    <patternset id="files">
    <include name="*.txt"/>
    </patternset>
</fileset>
<resourcecount property="count">
    <fileset id="matches" dir="../src">
    <patternset refid="files" />
    <contains text="${search4}" />
    </fileset>
</resourcecount>
<echo message="Found '${search4}' in files : '${count}'"/>
</target>
</project>

Я использовал это, но это печатает только первое вхождение.Я хотел бы напечатать общее количество.

Например, - abc, xyz, pg- -> Количество запятых (,) равно 2 .

1 Ответ

0 голосов
/ 11 октября 2018

Вот один из способов.Копирует файл в другой файл с фильтром для удаления всех запятых, а затем получает размер вывода, который представляет собой число запятых во входном файле.

<delete file="out.txt" />
<copy file="in.txt" tofile="out.txt">
  <filterchain>
    <striplinebreaks />
    <replaceregex pattern="[^,]" replace="" flags="gm" />
  </filterchain>
</copy>
<length file="out.txt" property="out.size" />
<echo message="Commas found: ${out.size}" />

На ваш следующий вопрос: как ограничить это только первой строкой файла: добавить это перед строкой "striplinebreaks":

    <headfilter lines="1" />

Это будет считать запятые только в первой строке файла.

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